Building automation system setup using a remote control device

ABSTRACT

An HVAC controller may be programmed using a mobile device having a touch screen display, a wireless port and a controller that is in operative communication with the touch screen display and the wireless port. The controller may establish communication with and download an application program code from the remote download server. The controller may establish a direct wireless connection between the wireless port of the mobile device and the wireless interface of the HVAC controller and execute the application program code, which provides one or more configuration screens on the touch screen display of the mobile device to enable the user to configure the HVAC controller via one or more configuration parameters, and then upload the one or more configuration parameters to the HVAC controller via the direct wireless connection between the wireless port of the mobile device and the wireless interface of the HVAC controller.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.62/009,856, filed Jun. 9, 2014, and entitled “METHOD AND APPARATUS FORCONTROLLING AN HVAC SYSTEM”, and U.S. Provisional Application No.61/914,877, filed Dec. 11, 2013, and entitled “METHOD AND APPARATUS FORCONTROLLING AN HVAC SYSTEM”, both of which are incorporated herein byreference.

BACKGROUND

Heating, ventilation, and/or air conditioning (HVAC) systems are oftenused to control the comfort level within a building or other structure.Such HVAC systems typically include an HVAC controller that controlsvarious HVAC components of the HVAC system in order to affect and/orcontrol one or more environmental conditions within the building.Improvements in the hardware, the user experience, and the functionalityof such systems are desirable.

SUMMARY

This disclosure relates to methods and apparatus for controlling an HVACsystem. The disclosure also relates to improvements in hardware, userexperience, and functionality of an HVAC controller. In some instances,the disclosure relates to a mobile device that may be used to program anHVAC controller having a wireless interface. The mobile device mayinclude a memory, a touch screen display that is configured to displayinformation and to permit a user to enter information, a wireless portand a controller that is in operative communication with the touchscreen display and the wireless port. In some instances, the controllermay be configured to establish communication to a remote download servervia the wireless port and to download an application program code fromthe remote download server. The application program code may be storedin the memory once downloaded. The controller of the mobile device mayestablish a direct wireless connection between the wireless port of themobile device and the wireless interface of the HVAC controller, withthe HVAC controller functioning as an access point. In some instances,the controller may execute the application program code, which mayprovide one or more configuration screens on the touch screen display ofthe mobile device to aid the user in configuring the HVAC controller viaone or more configuration parameters, and then upload the one or moreconfiguration parameters to the HVAC controller via the direct wirelessconnection between the wireless port of the mobile device and thewireless interface of the HVAC controller.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic view of an illustrative HVAC system servicing abuilding or structure;

FIG. 2 is a schematic view of an illustrative HVAC control system thatmay facilitate access and/or control of the HVAC system of FIG. 1;

FIG. 3 is a schematic block diagram of an illustrative HVAC controller;

FIG. 4 is a front elevation view of an illustrative HVAC controller;

FIG. 5 is an exploded view of the illustrative HVAC controller of FIG.4;

FIG. 6A shows an illustrative display window mask of the HVAC controllerof FIG. 4;

FIG. 6B is an exploded view of a portion of the illustrative HVACcontroller of FIG. 4;

FIG. 6C is a cross-sectional view of the HVAC controller of FIG. 4showing details of the assembly;

FIG. 6D is an exploded view of the HVAC controller of FIG. 4 showing awindow and its relationship to other components;

FIG. 6E shows an illustrative a touch sensitive element for use in theHVAC controller of FIG. 4;

FIG. 6F is an exploded view of the HVAC controller of FIG. 4 showing analternate window and its relationship to other components;

FIG. 7A is a perspective view of light sources for illumination of awindow mask stencil region of an HVAC controller;

FIG. 7B is a cross-sectional view of an illustrative lens and diffuserfor illumination of a window mask stencil region of an HVAC controller;

FIG. 7C is a cross-sectional view of an illustrative lens forillumination of a window mask stencil region of an HVAC controller andthe spatial relationship between the lens and a light source;

FIG. 7D is a perspective view of an outlet surface of a lens forilluminating a window mask stencil region of an HVAC controller;

FIG. 7E is a perspective view of an inlet surface of a lens forreceiving light from a light source to illuminate a window mask stencilregion of an HVAC controller;

FIGS. 7F-7H show various illustrative combinations of lens and diffusersfor illuminating a window mask stencil region of an HVAC controller;

FIG. 8A is a perspective view of an illustrative thermistor mount of anHVAC controller;

FIG. 8B is a perspective view of the position of the illustrativethermistor mount of FIG. 8A relative to a window support of an HVACcontroller;

FIG. 8C is a cross-sectional view showing the position of theillustrative thermistor mount of FIG. 8A relative to additionalcomponents of an HVAC controller;

FIG. 9A is a cross-sectional view of an illustrative HVAC controllershowing an illustrative rotational damping assembly;

FIG. 9B is a perspective view of illustrative dampeners of therotational damping assembly of FIG. 9A;

FIG. 9C is an exploded views showing an illustrative method for joininga button light guide assembly to a window support of an HVAC controller;

FIG. 10 is a perspective view of an illustrative assembly and method forencoding rotation of a turning ring;

FIG. 10A is a perspective view of an illustrative code wheel or turningring;

FIG. 10B is a perspective view of another illustrative code wheel with areflective code mounted to an inner extending flange;

FIG. 10C is a cross-sectional perspective view of the illustrative codewheel of FIG. 10B mounted in an HVAC controller, such as the HVACcontroller of FIG. 4;

FIG. 10D is a perspective view of a user's finger turning an outer ringof an illustrative HVAC controller, such as the HVAC controller of FIG.4;

FIG. 11A-D illustrate several magnetic mounting configurations formounting a thermostat housing to a thermostat mounting plate;

FIG. 12A illustrates a battery terminal of the prior art;

FIG. 12B illustrates an improved battery terminal;

FIG. 12C is a perspective view of the illustrative battery terminal ofFIG. 12B installed on a printed wiring board;

FIG. 13 is a perspective view of an illustrative mounting arrangementfor certain components of a printed wiring board of an HVAC controller,such as the HVAC controller of FIG. 4;

FIG. 14A is a perspective view of an illustrative light guide ring foran HVAC controller, such as the HVAC controller of FIG. 4;

FIG. 14B is a detailed view of a light input region of the light guidering of FIG. 14A;

FIG. 14C is another detailed view of the light input region of the lightguide ring of FIG. 14A;

FIG. 14D is a detailed view of the light extraction region of the lightguide ring of FIG. 14A;

FIG. 14E is an elevation view of the light guide ring of FIG. 14Amounted in relation to a printed circuit board;

FIG. 14F is a flow diagram showing an illustrative method forilluminating a light guide ring, such as the light guide ring of FIG.14A;

FIG. 15 is an elevation view of the wall side view of a mud ring;

FIG. 15A is a perspective view of an illustrative wall plate, showingjumper switch actuators that may be used to selectively block access towiring terminals;

FIGS. 16A-16B are a schematic diagram of an illustrative circuit forswitching between single transformer and two transformer operation;

FIG. 16C is a schematic diagram of another illustrative circuit forswitching between single transformer and two transformer operation;

FIG. 16D is a schematic diagram of another illustrative circuit forproviding an optional utility terminal;

FIG. 17 is a block diagram of principal settings for an illustrativethermostat and its interactions with networked components;

FIG. 17A is a front elevation view of the front face of an illustrativethermostat;

FIGS. 17B-17I are front elevation views of the front face of theillustrative thermostat of FIG. 17A under a variety of operatingconditions;

FIGS. 17J-17L are front elevation views of the front face of theillustrative thermostat of FIG. 17A illustrating optional presentationmodes for weather related information;

FIG. 18A is a block diagram of an illustrative building automationsystem that utilizes user-defined macros;

FIG. 18B is a block diagram of a remote user device that can be utilizedwith the building automation system of FIG. 18A;

FIG. 18C is a flow diagram showing a method that may be carried outusing the building automation system of FIG. 18A and the remote userdevice of FIG. 18B;

FIGS. 18D-18J are an illustrative flow diagram of programming one-touchactions (e.g. macros);

FIG. 19A is a block diagram of an illustrative mobile device that can beused to program an illustrative HVAC controller of a building automationsystem;

FIG. 19B is a block diagram of another illustrative mobile device thatcan be used to program an illustrative HVAC controller of a buildingautomation system;

FIG. 19C is a flow diagram of an illustrative method that may be carriedout using the mobile devices of FIG. 19A and/or FIG. 19B;

FIG. 19D-19L schematically illustrates the display of messages relatedto the operation of a thermostat on a mobile device;

FIG. 20A is a block diagram of an illustrative building automationsystem;

FIG. 20B is a block diagram of another illustrative building automationsystem;

FIG. 20C is a flow diagram of an illustrative method that may be carriedout using the illustrative building automation systems of FIG. 20Aand/or FIG. 20B;

FIGS. 20D-27 show several illustrative screens that may be displayed toa user via the user interface of a mobile device in connection withdownloading of an application program code for installing, setting upand configuring an HVAC controller;

FIG. 28 shows an illustrative screen that may be displayed uponsuccessful launch of an application program code for setting up an HVACcontroller;

FIGS. 29-41 show illustrative screens that may be displayed on the userinterface of a remote device (e.g. mobile device) by an applicationprogram code that may guide the user through removal of an existing HVACcontroller;

FIGS. 42-49 show illustrative screens that may be displayed on the userinterface of a remote device (e.g. mobile device) by an applicationprogram code that may guide the user through installation of a new HVACcontroller;

FIG. 50 is a front elevation view an illustrative HVAC controller aftera successful installation;

FIG. 51 shows an illustrative screen that may be displayed on the userinterface of a remote device (e.g. mobile device) when the remote deviceis attempting to connect to a wireless network hosted by an illustrativeHVAC controller;

FIG. 52 shows an illustrative screen that may be displayed on the userinterface of an illustrative HVAC controller when a remote device (e.g.mobile device) is attempting to connect to a network hosted by theillustrative HVAC controller;

FIG. 53 shows an illustrative screen that may be displayed on the userinterface of an illustrative HVAC controller upon successful connectionof a remote device to the wireless network hosted by the illustrativeHVAC controller 18;

FIG. 54 is a schematic diagram of network architecture that may beutilized by an illustrative HVAC controller in communication with aremote device and an external web service;

FIGS. 55-69 show illustrative screens that may be displayed on the userinterface of a remote device (e.g. mobile device) by an applicationprogram code that may guide the user through configuring an illustrativeHVAC controller;

FIG. 70 shows an illustrative screen that may be displayed on the userinterface of a remote device by an application program code uponcompletion of the configuration phase of the setup process;

FIG. 71 shows an illustrative screen that may be displayed on thedisplay of the user interface of the HVAC controller that has beenconfigured upon completion of the configuration phase of the setupprocess;

FIGS. 72-78 show illustrative screens that may be displayed on the userinterface of a remote device by an application program code that mayguide the user through connecting an HVAC controller to a wirelessnetwork and to a web service;

FIGS. 79-84 show illustrative screens that may be displayed on the userinterface of a remote device by an application program code that mayguide a user through personalizing an illustrative HVAC controller;

FIG. 85 shows an illustrative screen that may be displayed on thedisplay of the user interface of the illustrative HVAC controller thatis being setup after completion of the setup process;

FIG. 86A is a schematic block diagram of an illustrative buildingautomation system;

FIG. 86B is a schematic block diagram of another illustrative buildingautomation system;

FIG. 86C is a schematic block diagram of a server of an illustrativebuilding automation system;

FIGS. 86D and 86E show illustrative screens that may be displayed on theuser interface of a remote device (e.g. mobile device) by an applicationprogram code that may guide a user through utilizing certain functionsof an HVAC controller;

FIGS. 87-91 show illustrative screens that may be displayed on the userinterface of a remote device (e.g. mobile device) by an applicationprogram code through which a user may identify and connect to an HVACcontractor;

FIG. 92 shows another view of an options screen after a user hasconnected to an HVAC contractor;

FIG. 93 is a schematic diagram of an illustrative method for utilizinggeofencing in a building automation system;

FIG. 94 is a schematic block diagram of an illustrative buildingautomation system that may be used with geofencing;

FIG. 95 is a schematic block diagram of another building automationsystem that may be use with geofencing;

FIG. 96 is a schematic block diagram of another building automationsystem that may be use with geofencing;

FIG. 97 shows an illustrative screen that may be displayed on the userinterface of a remote device (e.g. mobile device) by an applicationprogram code through which a user may select between a small and a largeproximity boundary setting for geofencing;

FIGS. 98-101 show illustrative screens that may be displayed on the userinterface of a remote device (e.g. mobile device) by an applicationprogram code that may guide a user through selecting an appropriateproximity boundary;

FIG. 102 shows another illustrative setting screen that may be displayedon the user interface of a remote device (e.g. mobile device) by anapplication program code through which a user may select an appropriategeofence setting;

FIG. 103 shows an illustrative screen through which a user may customizea proximity boundary;

FIGS. 104-106 show illustrative screens through which a user maycustomize a proximity boundary; and

FIG. 107 is a schematic block diagram of an illustrative HVACcontroller.

While the disclosure is amenable to various modifications andalternative forms, specifics thereof have been shown by way of examplein the drawings and will be described in detail. It should beunderstood, however, that the intention is not to limit aspects of thedisclosure to the particular illustrative embodiments described. On thecontrary, the intention is to cover all modifications, equivalents, andalternatives falling within the spirit and scope of the disclosure.

DESCRIPTION

The following description should be read with reference to the drawingswherein like reference numerals indicate like elements. The drawings,which are not necessarily to scale, are not intended to limit the scopeof the disclosure. In some of the figures, elements not believednecessary to an understanding of relationships among illustratedcomponents may have been omitted for clarity.

All numbers are herein assumed to be modified by the term “about”,unless the content clearly dictates otherwise. The recitation ofnumerical ranges by endpoints includes all numbers subsumed within thatrange (e.g., 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.80, 4, and 5).

As used in this specification and the appended claims, the singularforms “a”, “an”, and “the” include the plural referents unless thecontent clearly dictates otherwise. As used in this specification andthe appended claims, the term “or” is generally employed in its senseincluding “and/or” unless the content clearly dictates otherwise.

It is noted that references in the specification to “an embodiment”,“some embodiments”, “other embodiments”, etc., indicate that theembodiment described may include a particular feature, structure, orcharacteristic, but every embodiment may not necessarily include theparticular feature, structure, or characteristic. Moreover, such phrasesare not necessarily referring to the same embodiment. Further, when aparticular feature, structure, or characteristic is described inconnection with an embodiment, it is contemplated that the feature,structure, or characteristic may be applied to other embodiments whetheror not explicitly described unless clearly stated to the contrary.

The present disclosure is directed generally at building automationsystem. Building automation systems are systems that control one or moreoperations of a building. Building automation systems can include HVACsystems, security systems, fire suppression systems, energy managementsystems and other systems. While HVAC systems are used as an examplebelow, it should be recognized that the concepts disclosed herein can beapplied to building control systems more generally.

FIG. 1 is a schematic view of a building 2 having an illustrativeheating, ventilation, and air conditioning (HVAC) system 4. While FIG. 1shows a typical forced air type HVAC system, other types of HVAC systemsare contemplated including, but not limited to, boiler systems, radiantheating systems, electric heating systems, cooling systems, heat pumpsystems, and/or any other suitable type of HVAC system, as desired. Theillustrative HVAC system 4 of FIG. 1 includes one or more HVACcomponents 6, a system of ductwork and air vents including a supply airduct 10 and a return air duct 14, and one or more HVAC controllers 18.The one or more HVAC components 6 may include, but are not limited to, afurnace, a heat pump, an electric heat pump, a geothermal heat pump, anelectric heating unit, an air conditioning unit, a humidifier, adehumidifier, an air exchanger, an air cleaner, a damper, a valve,and/or the like.

It is contemplated that the HVAC controller(s) 18 may be configured tocontrol the comfort level in the building or structure by activating anddeactivating the HVAC component(s) 6 in a controlled manner. The HVACcontroller(s) 18 may be configured to control the HVAC component(s) 6via a wired or wireless communication link 20. In some cases, the HVACcontroller(s) 18 may be a thermostat, such as, for example, a wallmountable thermostat, but this is not required in all embodiments. Sucha thermostat may include (e.g. within the thermostat housing) or haveaccess to a temperature sensor for sensing an ambient temperature at ornear the thermostat. In some instances, the HVAC controller(s) 18 may bea zone controller, or may include multiple zone controllers eachmonitoring and/or controlling the comfort level within a particular zonein the building or other structure.

In the illustrative HVAC system 4 shown in FIG. 1, the HVAC component(s)6 may provide heated air (and/or cooled air) via the ductwork throughoutthe building 2. As illustrated, the HVAC component(s) 6 may be in fluidcommunication with every room and/or zone in the building 2 via theductwork 10 and 14, but this is not required. In operation, when a heatcall signal is provided by the HVAC controller(s) 18, an HVAC component6 (e.g. forced warm air furnace) may be activated to supply heated airto one or more rooms and/or zones within the building 2 via supply airducts 10. The heated air may be forced through supply air duct 10 by ablower or fan 22. In this example, the cooler air from each zone may bereturned to the HVAC component 6 (e.g. forced warm air furnace) forheating via return air ducts 14. Similarly, when a cool call signal isprovided by the HVAC controller(s) 18, an HVAC component 6 (e.g. airconditioning unit) may be activated to supply cooled air to one or morerooms and/or zones within the building or other structure via supply airducts 10. The cooled air may be forced through supply air duct 10 by theblower or fan 22. In this example, the warmer air from each zone may bereturned to the HVAC component 6 (e.g. air conditioning unit) forcooling via return air ducts 14. In some cases, the HVAC system 4 mayinclude an internet gateway or other device 23 that may allow one ormore of the HVAC components, as described herein, to communicate over awide area network (WAN) such as, for example, the Internet.

In some cases, the system of vents or ductwork 10 and/or 14 can includeone or more dampers 24 to regulate the flow of air, but this is notrequired. For example, one or more dampers 24 may be coupled to one ormore HVAC controller(s) 18, and can be coordinated with the operation ofone or more HVAC components 6. The one or more HVAC controller(s) 18 mayactuate dampers 24 to an open position, a closed position, and/or apartially open position to modulate the flow of air from the one or moreHVAC components to an appropriate room and/or zone in the building orother structure. The dampers 24 may be particularly useful in zoned HVACsystems, and may be used to control which zone(s) receives conditionedair from the HVAC component(s) 6.

In many instances, one or more air filters 30 may be used to remove dustand other pollutants from the air inside the building 2. In theillustrative example shown in FIG. 1, the air filter(s) 30 is installedin the return air duct 14, and may filter the air prior to the airentering the HVAC component 6, but it is contemplated that any othersuitable location for the air filter(s) 30 may be used. The presence ofthe air filter(s) 30 may not only improve the indoor air quality, butmay also protect the HVAC components 6 from dust and other particulatematter that would otherwise be permitted to enter the HVAC component.

In some cases, and as shown in FIG. 1, the illustrative HVAC system 4may include an equipment interface module (EIM) 34. When provided, theequipment interface module 34 may, in addition to controlling the HVACunder the direction of the thermostat, be configured to measure ordetect a change in a given parameter between the return air side and thedischarge air side of the HVAC system 4. For example, the equipmentinterface module 34 may measure a difference in temperature, flow rate,pressure, or a combination of any one of these parameters between thereturn air side and the discharge air side of the HVAC system 4. In somecases, the equipment interface module 34 may be adapted to measure thedifference or change in temperature (delta T) between a return air sideand discharge air side of the HVAC system 4 for the heating and/orcooling mode. The delta T for the heating and cooling modes may becalculated by subtracting the return air temperature from the dischargeair temperature (e.g. delta T=discharge air temperature−return airtemperature)

In some cases, the equipment interface module 34 may include a firsttemperature sensor 38 a located in the return (incoming) air duct 14,and a second temperature sensor 38 b located in the discharge (outgoingor supply) air duct 10. Alternatively, or in addition, the equipmentinterface module 34 may include a differential pressure sensor includinga first pressure tap 39 a located in the return (incoming) air duct 14,and a second pressure tap 39 b located downstream of the air filter 30to measure a change in a parameter related to the amount of flowrestriction through the air filter 30. In some cases, the equipmentinterface module 34, when provided, may include at least one flow sensorthat is capable of providing a measure that is related to the amount ofair flow restriction through the air filter 30. In some cases, theequipment interface module 34 may include an air filter monitor. Theseare just some examples.

When provided, the equipment interface module 34 may be configured tocommunicate with the HVAC controller 18 via, for example, a wired orwireless communication link 42. In other cases, the equipment interfacemodule 34 may be incorporated or combined with the HVAC controller 18.In either cases, the equipment interface module 34 may communicate,relay or otherwise transmit data regarding the selected parameter (e.g.temperature, pressure, flow rate, etc.) to the HVAC controller 18. Insome cases, the HVAC controller 18 may use the data from the equipmentinterface module 34 to evaluate the system's operation and/orperformance. For example, the HVAC controller 18 may compare datarelated to the difference in temperature (delta T) between the returnair side and the discharge air side of the HVAC system 4 to a previouslydetermined delta T limit stored in the HVAC controller 18 to determine acurrent operating performance of the HVAC system 4.

FIG. 2 is a schematic view of an HVAC control system 50 that facilitatesremote access and/or control of the HVAC system 4 shown in FIG. 1. TheHVAC control system 50 may be considered a building control system orpart of a building control system. The illustrative HVAC control system50 includes an HVAC controller, as for example, HVAC controller 18 (seeFIG. 1) that is configured to communicate with and control one or moreHVAC components 6 of the HVAC system 4. As discussed above, the HVACcontroller 18 may communicate with the one or more HVAC components 6 ofthe HVAC system 4 via a wired or wireless link. Additionally, the HVACcontroller 18 may communicate over one or more wired or wirelessnetworks that may accommodate remote access and/or control of the HVACcontroller 18 via another device such as a smart phone, tablet,e-reader, laptop computer, personal computer, key fob, or the like. Asshown in FIG. 2, the HVAC controller 18 may include a firstcommunications port 52 for communicating over a first network 54, and insome cases, a second communications port 56 for communicating over asecond network 58. In some cases, the first network 54 may be a wirelesslocal area network (LAN), and the second network 58 (when provided) maybe a wide area network or global network (WAN) including, for example,the Internet. In some cases, the wireless local area network 54 mayprovide a wireless access point and/or a network host device that isseparate from the HVAC controller 18. In other cases, the wireless localarea network 54 may provide a wireless access point and/or a networkhost device that is part of the HVAC controller 18. In some cases, thewireless local area network 54 may include a local domain name server(DNS), but this is not required for all embodiments. In some cases, thewireless local area network 54 may be an ad-hoc wireless network, butthis is not required.

In some cases, the HVAC controller 18 may be programmed to communicateover the second network 58 with an external web service hosted by one ormore external web server 66. A non-limiting example of such an externalweb service is Honeywell's TOTAL CONNECT™ web service. The HVACcontroller 18 may be configured to upload selected data via the secondnetwork 58 to the external web service where it may be collected andstored on the external web server 66. In some cases, the data may beindicative of the performance of the HVAC system 4. Additionally, theHVAC controller 18 may be configured to receive and/or download selecteddata, settings and/or services sometimes including software updates fromthe external web service over the second network 58. The data, settingsand/or services may be received automatically from the web service,downloaded periodically in accordance with a control algorithm, and/ordownloaded in response to a user request. In some cases, for example,the HVAC controller 18 may be configured to receive and/or download anHVAC operating schedule and operating parameter settings such as, forexample, temperature set points, humidity set points, start times, endtimes, schedules, window frost protection settings, and/or the like fromthe web server 66 over the second network 58. In some instances, theHVAC controller 18 may be configured to receive one or more userprofiles having at least one operational parameter setting that isselected by and reflective of a user's preferences. In still otherinstances, the HVAC controller 18 may be configured to receive and/ordownload firmware and/or hardware updates such as, for example, devicedrivers from the web server 66 over the second network 58. Additionally,the HVAC controller 18 may be configured to receive local weather data,weather alerts and/or warnings, major stock index ticker data, and/ornews headlines over the second network 58. These are just some examples.

Depending upon the application and/or where the HVAC user is located,remote access and/or control of the HVAC controller 18 may be providedover the first network 54 and/or the second network 58. A variety ofremote wireless devices 62 may be used to access and/or control the HVACcontroller 18 from a remote location (e.g. remote from the HVACController 18) over the first network 54 and/or second network 58including, but not limited to, mobile phones including smart phones,tablet computers, laptop or personal computers, wireless network-enabledkey fobs, e-readers, and/or the like. In many cases, the remote wirelessdevices 62 are configured to communicate wirelessly over the firstnetwork 54 and/or second network 58 with the HVAC controller 18 via oneor more wireless communication protocols including, but not limited to,cellular communication, ZigBee, REDLINK™, Bluetooth, WiFi, IrDA,dedicated short range communication (DSRC), EnOcean, and/or any othersuitable common or proprietary wireless protocol, as desired.

In some cases, an application program code (i.e. app) stored in thememory of the remote device 62 may be used to remotely access and/orcontrol the HVAC controller 18. The application program code (app) maybe provided for downloading from an external web service, such as theweb service hosted by the external web server 66 (e.g. Honeywell's TOTALCONNECT™ web service) or another external web service (e.g. ITUNES® orGoogle Play). In some cases, the app may provide a remote user interfacefor interacting with the HVAC controller 18 at the user's remote device62. For example, through the user interface provided by the app, a usermay be able to change the operating schedule and operating parametersettings such as, for example, temperature set points, humidity setpoints, start times, end times, schedules, window frost protectionsettings, accept software updates and/or the like. Communications may berouted from the user's remote device 62 to the web server 66 and then,from the web server 66 to the HVAC controller 18. In some cases,communications may flow in the opposite direction such as, for example,when a user interacts directly with the HVAC controller 18 to change anoperating parameter setting such as, for example, a schedule change or aset point change. The change made at the HVAC controller 18 may then berouted to the web server 66 and then from the web server 66 to theremote device 62 where it may reflected by the application programexecuted by the remote device 62.

In other cases, a user may be able to interact with the HVAC controller18 via a user interface provided by one or more web pages served up bythe web server 66. The user may interact with the one or more web pagesusing a variety of interne capable devices to effect a change at theHVAC controller 18 as well as view usage data and energy consumptiondata related to the usage of the HVAC system 4. In still yet anothercase, communication may occur between the user's remote device 62 andthe HVAC controller 18 without being relayed through a server. These arejust some examples.

Figure 3 is an illustrative schematic block diagram of the HVACcontroller 18 of FIG. 2. As discussed above with reference to FIG. 2,the HVAC controller 18 may be accessed and/or controlled from a remotelocation over the first network 54 and/or the second network 58 using aremote wireless device 62 such as, for example, a smart phone, a tabletcomputer, a laptop or personal computer, a wireless network-enabled keyfob, an e-reader, and/or the like. In some instances, the HVACcontroller 18 may be a thermostat, but this is not required. As shown inFIG. 3, the HVAC controller 18 may include a communications block 60having a first communications port 52 for communicating over a firstnetwork (e.g. a wireless LAN) and a second communications port 56 forcommunicating over a second network (e.g. a WAN or the Internet). Thefirst communications port 52 can be a wireless communications portincluding a wireless transceiver for wirelessly sending and/or receivingsignals over a first wireless network 54. Similarly, the secondcommunications port 56 may be a wireless communications port including awireless transceiver for sending and/or receiving signals over a secondwireless network 58. In some cases, the second communications port 56may be in communication with a wired or wireless router or gateway forconnecting to the second network, but this is not required. In somecases, the router or gateway may be integral to the HVAC controller 18or may be provided as a separate device. Additionally, the illustrativeHVAC controller 18 may include a processor (e.g. microprocessor,microcontroller, etc.) 64 and a memory 72. The HVAC controller 18 mayalso include a user interface 108, but this is not required. In somecases, HVAC controller 18 may include a timer (not shown). The timer maybe integral to the processor 64 or may be provided as a separatecomponent. The memory 72 of the illustrative HVAC controller 18 may bein communication with the processor 64. The memory 72 may be used tostore any desired information, such as the aforementioned controlalgorithm, set points, schedule times, diagnostic limits such as, forexample, differential pressure limits, delta T limits, and the like. Thememory 72 may be any suitable type of storage device including, but notlimited to, RAM, ROM, EPROM, flash memory, a hard drive, and/or thelike. In some cases, the processor 64 may store information within thememory 72, and may subsequently retrieve the stored information from thememory 72.

In many cases, the HVAC controller 18 may include an input/output block(I/O) block) 78 having a number of wire terminals (e.g. 80 a-80 d) forreceiving one or more signals from the HVAC system 4 and/or forproviding one or more control signals to the HVAC system 4. For example,the I/O block 78 may communicate with one or more HVAC components 6 ofthe HVAC system 4. The HVAC controller 18 may have any number of wireterminals for accepting a connection from one or more HVAC components 6of the HVAC system 4. However, how many wire terminals are utilized andwhich terminals are wired is dependent upon the particular configurationof the HVAC system 4. Different HVAC systems 4 having different HVACcomponents and/or type of HVAC components 6 may have different wiringconfigurations. As such, an I/O block having four wire terminals, asshown in FIG. 2, is just one example and is not intended to be limiting.Alternatively, or in addition to, the I/O block 78 may communicate withanother controller, which is in communication with one or more HVACcomponents of the HVAC system 4, such as a zone control panel in a zonedHVAC system, equipment interface module (EIM) (e.g. EIM 34 shown inFIG. 1) or any other suitable building control device.

In some cases, a power-transformation block 82 may be connected to oneor more wires of the I/O block 78, and may be configured to bleed orsteal energy from the one or more wires of the I/O block 78. The powerbled off of the one or more wires of the I/O block may be stored in anenergy storage device 86 that may be used to at least partially powerthe HVAC controller 18. In some cases, the energy storage device 86 maybe capacitor or a rechargeable battery. In addition, the HVAC controller18 may also include a back-up source of energy such as, for example, abattery that may be used to supplement power supplied to the HVACcontroller 18 when the amount of available power stored by the energystorage device 86 is less than optimal or is insufficient to powercertain applications. Certain applications or functions performed by theHVAC controller may require a greater amount of energy than others. Ifthere is an insufficient amount of energy stored in the energy storagedevice 86, then, in some cases, certain applications and/or functionsmay be prohibited by the processor 64.

The HVAC controller 18 may also include one or more sensors such as forexample, a temperature sensor, a humidity sensor, an occupancy sensor, aproximity sensor, and/or the like. In some cases, the HVAC controller 18may include an internal temperature sensor 90, as shown FIG. 3, but thisis not required. The HVAC controller 18 may also communicate with one ormore remote temperature sensors, humidity sensors, and/or occupancysensors located throughout the building or structure. Additionally, theHVAC controller may communicate with a temperature sensor and/orhumidity sensor located outside of the building or structure for sensingan outdoor temperature and/or humidity if desired.

In some cases, the HVAC controller 18 may include a sensor 92 that isconfigured determine if a user is in proximity to the buildingcontroller. In some cases, the sensor 92 may be a motion sensor or aproximity sensor such as, for example, a passive infrared (PIR) sensor.In certain cases in which the sensor 92 is a motion sensor or aproximity sensor, the sensor 92 may be located remotely from the HVACcontroller 18 and may be in wireless communication with the HVACcontroller 18 via one of the communication ports.

In other cases, the sensor 92 may be configured to determine that theuser is near or expected to be near the HVAC controller 18 based, atleast in part, on the location data provided by a location based serviceapplication program executed by a user's remote device 62 that the userutilizes to interact with the HVAC controller 18 from a remote location.The location data generated by the location based services app may betransmitted from the user's remote device 62 directly to the HVACcontroller 18 or, in some cases, may be transmitted to the HVACcontroller 18 via a server 66 (e.g. Honeywell's TOTAL CONNECT™ server)to which both the HVAC controller 18 and the user's remote device 62 maybe connected. In some cases, the sensor 92 may be configured todetermine that the user or, more specifically, the user's remote device62 has crossed at least one of two or more proximity boundaries relativeto the location of the HVAC controller 18 based on location dataprovided by the user's remote device that the user utilizes to interactwith the HVAC controller 18. The user's remote device 62 may determinethat the user has crossed a proximity boundary by comparing the locationdata generated by sensor 92 of the user's remote device 62 to apredetermined fixed location or boundary. In some cases, the proximityboundary(s) may be defined by a radius extending outward from apredetermined fixed location. The predetermined fixed location may bethe location of the HVAC controller 18 or another selected location suchas, for example, the user's workplace. Alternatively, or in addition to,the proximity boundary(s) may be customized by the user and may have anyshape and or size that appropriately reflects the user's local and/ordaily travel habits. For example, at least one proximity boundary may beconfigured by the user to have the same general size and/or shape of thecity in which their home or workplace is located.

In yet another example, the sensor 92 may be configured to determinethat the user is in proximity to or is expected to be in proximity tothe HVAC controller 18 upon detecting that the user's remote device 62is connected to the building's wireless network which, in some cases,may be the same network to which the HVAC controller 18 is alsoconnected. Such functionality is shown and described in U.S. PatentPublication No. 2014/0031989 entitled “HVAC CONTROLLER WITH WIRELESSNETWORK BASED OCCUPANCY DETECTION AND CONTROL”, the entirety of which isincorporated by reference herein for all purposes.

In still other cases, the user's remote device 62 may be configured todetermine that a user is in proximity to the HVAC controller 18 uponsensing a user's interaction with the HVAC controller 18 via the userinterface provided at the HVAC controller 18. For example, the sensor 92may be configured to sense when the screen of the user interface 108 istouched and/or when a button provided at the user interface 108 ispressed by a user. In some cases, the sensor 92 may be a touch sensitiveregion provided on the user interface 108 when the user interface 108incorporates a touch screen display. In other cases, the sensor 92 maybe associated with a hard button or soft key that is provided separatefrom a display of the user interface 108.

In some cases, upon detecting or determining that a user is in proximityto the HVAC controller, the sensor 92 may deliver a signal to theprocessor 64 indicating that the user is in proximity to the HVACcontroller 18. In other cases, the upon detecting or determining that auser is in proximity to the HVAC controller 18, the sensor 92 may beconfigured to transmit a signal to a remote server 66 over a secondnetwork 58 via the communications block 60.

The user interface 108, when provided, may be any suitable userinterface that permits the HVAC controller 18 to display and/or solicitinformation, as well as accept one or more user interactions with theHVAC controller 18. For example, the user interface 108 may permit auser to locally enter data such as temperature set points, humidity setpoints, starting times, ending times, schedule times, diagnostic limits,responses to alerts, and the like. In one example, the user interface108 may be a physical user interface that is accessible at the HVACcontroller 18, and may include a display and/or a distinct keypad. Thedisplay may be any suitable display. In some instances, a display mayinclude or may be a liquid crystal display (LCD), and in some cases ane-ink display, fixed segment display, or a dot matrix LCD display. Inother cases, the user interface 108 may be a touch screen LCD panel thatfunctions as both display and keypad. The touch screen LCD panel may beadapted to solicit values for a number of operating parameters and/or toreceive such values, but this is not required. In still other cases, theuser interface 108 may be a dynamic graphical user interface.

In some instances, the user interface 108 need not be physicallyaccessible to a user at the HVAC controller 18. Instead, the userinterface 108 may be a virtual user interface 108 that is accessible viathe first network 54 and/or second network 58 using a mobile wirelessdevice such as one of those remote devices 62 previously describedherein. In some cases, the virtual user interface 108 may be provided byan app executed by a user's remote device for the purposes of remotelyinteracting with the HVAC controller 18. Through the virtual userinterface 108 provided by the app on the user's remote device 62, theuser may change temperature set points, humidity set points, startingtimes, ending times, schedule times, diagnostic limits, respond toalerts, update their user profile, view energy usage data, and/or thelike. In some instances, changes made to the HVAC controller 18 via auser interface 108 provided by an app on the user's remote device 62 maybe first transmitted to an external web server 66. The external webserver 66 may receive and accept the user inputs entered via the virtualuser interface 108 provided by the app on the user's remote device 62,and associate the user inputs with a user's account on the external webservice. If the user inputs include any changes to the existing controlalgorithm including any temperature set point changes, humidity setpoint changes, schedule changes, start and end time changes, windowfrost protection setting changes, operating mode changes, and/or changesto a user's profile, the external web server 66 may update the controlalgorithm, as applicable, and transmit at least a portion of the updatedcontrol algorithm over the second network 58 to the HVAC controller 18where it is received via the second port 56 and may be stored in thememory 72 for execution by the processor 64. In some cases, the user mayobserve the effect of their inputs at the HVAC controller 18. Asdiscussed herein, the communication rate between the processor 64 andthe web server 66 may affect the message latency from when the userinteracts with the user interface 108 provided by their remote device 62to effect a change at the HVAC controller 18 and when a messagecorresponding to the user's interaction with the user interface 108provided at their remote device 62 is communicated to the HVACcontroller 18. In some cases, the user may experience lower messagelatencies when the HVAC controller 18 has a full amount of availablepower stored in the energy storage device. The message latency mayincrease as less power is available to the HVAC controller 18 from theenergy storage device 86, but this is not required.

Rather than a dedicated app, the virtual user interface 108 may includeone or more web pages that are transmitted over the second network 58(e.g. WAN or the Internet) by an external web server (e.g. web server66). The one or more web pages forming the virtual user interface 108may be hosted by an external web service and associated with a useraccount having one or more user profiles. The external web server 66 mayreceive and accept user inputs entered via the virtual user interfaceand associate the user inputs with a user's account on the external webservice. If the user inputs include changes to the existing controlalgorithm including any temperature set point changes, humidity setpoint changes, schedule changes, start and end time changes, windowfrost protection setting changes, operating mode changes, and/or changesto a user's profile, the external web server 66 may update the controlalgorithm, as applicable, and transmit at least a portion of the updatedcontrol algorithm over the second network 58 to the HVAC controller 18where it is received via the second port 56 and may be stored in thememory 72 for execution by the processor 64. In some cases, the user mayobserve the effect of their inputs at the HVAC controller 18.

In some cases, a user may use either the user interface 108 provided atthe HVAC controller 18 and/or a virtual user interface 108 as describedherein. The two types of user interfaces 108 that may be used tointeract with the HVAC controller 18 are not mutually exclusive of oneanother. However, in some cases, a virtual user interface 108 mayprovide more advanced capabilities to the user.

FIG. 4 is a front elevation view of an illustrative HVAC controller 18that includes a user interface 108. The user interface 108, provided atthe HVAC controller 18, may be provided in addition to or in alternativeto a virtual user interface that may be provided by an applicationprogram executed by a user's remote device 62 or that may be viewed asone or more web pages served up by a web server 66, as discussed herein.As shown in FIG. 4, the illustrative user interface 108 may include adisplay 94 disposed within a housing 96. In some cases, the display 94may be a touch screen display, but this is not required. In the exampleshown, the user interface 108 may include one or more touch sensitiveregions 98 a-98 c provided on the display 94, each touch sensitiveregion defining a button through which the user may interact with theHVAC controller 18. Additionally, or alternatively, the user interface108 may include one or more buttons 102 a and 102 b that may be providedseparate from the display 94 through which the user may interact withthe HVAC controller 18. In some cases, the buttons 102 a, 102 b may betouch sensitive capacitive buttons. In other cases, the buttons 102 a,102 b may be hard, physical buttons or soft keys. It will be generallyunderstood that the size and shape of the display as well as the numberand location of the various buttons can vary.

The housing 96 may be fabricated from any suitable material. As shown inFIG. 4, the housing 96 may have a generally circular foot print, butthis is not required. In some cases, the housing 96 may be a two-parthousing a may include a rotating ring 106 which may form part of theuser interface 108, and which may provide another mechanism foraccepting input from a user. For example, the user may rotate the ring106 to increase or decrease an operating parameter (e.g. set point)and/or to change information viewed on the display 94 by advancing froma first screen to a second screen displayed on the display 94. In somecases, while the user interface 108 that is provided at the HVACcontroller 18 is capable of receiving a user's interactions, a moreadvanced or detailed user interface 108 for more fully interacting withthe HVAC controller 18 may be provided by an application programexecuted at a user's remote device 62 and/or by one or more web pagesserved up by a web server such as web server 66, as described herein.

Referring back to FIG. 3, the processor 64 may operate in accordancewith an algorithm that controls or at least partially controls one ormore HVAC components of an HVAC system such as, for example, HVAC system4 of FIG. 1. The processor 64, for example, may operate in accordancewith a control algorithm that provides temperature set point changes,humidity set point changes, schedule changes, start and end timechanges, window frost protection setting changes, operating modechanges, and/or the like. At least a portion of the control algorithmmay be stored locally in the memory 72 of the HVAC controller 18 and, insome cases, may be received from an external web service over the secondnetwork 58. The control algorithm (or portion thereof) stored locally inthe memory 72 of the HVAC controller 18 may be periodically updated inaccordance with a predetermined schedule (e.g. once every 24 hours, 48hours, 72 hours, weekly, monthly, etc.), updated in response to anychanges to the control algorithm (e.g. set point change) made by a user,and/or updated in response to a user's request. The updates to thecontrol algorithm or portion of the control algorithm stored in thememory 72 may be received from an external web service over the secondnetwork. In some cases, the control algorithm may include settings suchas set points.

In some cases, the processor 64 may operate according to a firstoperating mode having a first temperature set point, a second operatingmode having a second temperature set point, a third operating modehaving a third temperature set point, and/or the like. In some cases,the first operating mode may correspond to an occupied mode, and thesecond operating mode may correspond to an unoccupied mode. In somecases, the third operating mode may correspond to a holiday or vacationmode wherein the building or structure in which the HVAC system 4 islocated may be unoccupied for an extended period of time. In othercases, the third operating mode may correspond to a sleep mode whereinthe building occupants are either asleep or inactive for a period oftime. These are just some examples. It will be understood that theprocessor 64 may be capable of operating in additional operating modesas necessary or desired. The number of operating modes and the operatingparameter settings associated with each of the operating modes may beestablished locally through the user interface 108, and/or through anexternal web service and delivered to the HVAC controller via the secondnetwork 58 where they may be stored in the memory 72 for reference bythe processor 64.

In some cases, the processor 64 may operate according to one or morepredetermined operating parameter settings associated with a userprofile for an individual user. The user profile may be stored in thememory 72 of the HVAC controller 18 and/or may be hosted by an externalweb service and stored on an external web server. The user profile mayinclude one or more user-selected settings for one or more operatingmodes that may be designated by the user. For example, the processor 64may operate according to a first operating mode having a firsttemperature set point associated with a first user profile, a secondoperating mode having a second temperature set point associated with thefirst user profile, a third operating mode having a third temperatureset point associated with the first user profile, and/or the like. Insome cases, the first operating mode may correspond to an occupied mode,the second operating mode may correspond to an unoccupied mode, and thethird operating mode may correspond to a vacation or extended away modewherein the building or structure in which the HVAC system 4 is locatedmay be unoccupied for an extended period of time. In some cases,multiple user profiles may be associated with the HVAC controller 18. Incertain cases, where two or more user profiles are associated with theHVAC controller 18, the processor 64 may be programmed to include a setof rules for determining which individual's user profile takesprecedence for controlling the HVAC system when both user profiles areactive.

In some cases, the processor 64 may be programmed to execute a guidedset-up routine that may guide a user through configuring the HVACcontroller 18 to control one or more HVAC components 6 of theirparticular HVAC system 4. In some cases, the user may have limitedknowledge about the particular HVAC system configuration. The guidedset-up routine may be configured to guide a user through set-up of theHVAC controller 18 without requiring detailed knowledge of theparticular HVAC system and/or without requiring the user to consult atechnical manual or guide.

Within the following disclosure, non-limiting reference will be made torepresentative components of an illustrative thermostat illustrated inthe exploded view of FIG. 5. The major subassemblies are identifiedgenerally as follows:

180 a display window/mask

180 b adhesive

180 c capacitive touch element

180 d display gasket

180 e display

180 f window support and IR sensor

180 g button light guide assembly/dampener

180 h turning ring and code wheel

180 i sliding ring

180 j printed wiring board (PWB)

180 k back ring

180 l light ring

180 m case back

180 n wall plate assembly/level/battery/PWB-2

180 o mud ring

Not all listed components will receive further detailed attention andnot all components contemplated are illustrated in FIG. 5 which servesto indicate the relative locations of components of one illustrativeembodiment. It will be appreciated that certain of the components may beomitted, combined, rearranged, or otherwise modified in otherembodiments.

In the illustrative embodiment of FIGS. 5 and 6A, related generally todisplay window 180 a of FIG. 5, window display mask 200 of FIG. 6A mayallow selected display components to be seen through the window displaymask 200 to effect a uniform display appearance as well as to alter theapparent shape(s) of the elements of the overall display withoutrequiring custom display elements. The display window itself may befabricated from any convenient transparent material such glass,polycarbonate, acrylic, or the like. In one embodiment, the windowdisplay mask 200 is formed on the inner surface of the display windowand is carefully registered with display elements of the thermostat. Thewindow display mask 200 may be formed by conventional techniques and theopaque regions of the window display mask may be colored black, white,or other colors. In some embodiments, at least a portion of the windowdisplay mask may be formed of a material which is largely transparentwhen backlit and which presents a mirror finish when not backlit. Insuch embodiments, the portions of the window display mask which areformed of a material which is largely transparent when backlit may beconfined to those portions of the window display mask which are notopaque. In certain embodiments, the material which is largelytransparent when backlit may include a metallized layer which issubstantially nonconductive to minimize interference with radiofrequency communication between the thermostat and other components ofthe system. In certain other embodiments, the material which is largelytransparent when backlit may be applied to the inner surface of thetransparent material before the mask 200 is applied. This material mayalso be used as a component of an optical encoder associated withsensing motion and or position of a code wheel or turning ring (see 180h of FIG. 5), but this is not required.

Some portions and apertures 220 a-b of the window display mask 200 mayoverlie a single display element, such as a rectangular color LEDdisplay 180 e of FIG. 5, so that the user experiences that portion ofthe color LED display which is seen through aperture 220 b as a circularscreen element and experiences the arched aperture 220 a as a separatearched display element or elements. It will be appreciated that theareas displayed through apertures 220 a-b of the window display mask 200may be further divided into visually distinct display regions such asthree user buttons in the area of arched aperture 220 a and/or lists inaperture 220 b .It will further be appreciated that the visualinformation displayed within an aperture may change from time-to-timedepending upon the state of the thermostat. For example, at a firsttime, the information displayed through aperture 220 b may alternatebetween the current time and the current temperature. At a second time,the display may provide the current indoor temperature and the currentset point through aperture 220 b, if those temperatures differ. At athird time, the information displayed may include a list of options fromwhich the user may select using a touch screen capability of the device.At a fourth time, the information displayed through the upper aperture220 a may represent an array of choices such system mode a setting ofHeat, Off, Cool, and optionally may change to a centered indication ofthe selected choice at a fifth time. At a sixth time, the displaythrough aperture 220 b may indicate a portion of the pending changes tothe list of set point options. Each of these as well as additionaldisplay options may be implemented in various embodiments. It will beappreciated that the circular aperture 220 b and the arched aperture 220a configurations are only illustrative and non-limiting and may bereplaced by more or fewer mask apertures, said apertures having anydesired shape(s).

Similarly, certain display elements may be implemented as stencils 102a, 102 b overlying a light source which back illuminates the stencilwhen the associated function is available and/or active and which isdark or grayed when the function is unavailable and/or inactive.Additional information may be conveyed by selecting from among multiplecolored light sources. In the example shown in FIG. 6A, stencil 102 amay overlie a touch-sensitive element such as capacitive touch-sensitivemembrane to request local weather information and the informationretrieved by the thermostat may be displayed with color coding of lightdisplayed through the aperture or may be displayed in greater detailthrough the central aperture 220 b. In some cases, one or bothtouch-sensitive elements associated, for example, with stencil areas 102a and/or 102 b may cause one or more options to be displayed and/orselected on the portion of the display visible through aperture 220 b.

Referring to FIG. 6B, the window and display mask 200 may be positionedrelative to regions 222 a, 232 a-b (which are on the transparenttouch-sensitive element 240, see subassembly 180 c of FIG. 5), and areheld in registry with the display (not shown in this figure for clarity)by an appropriate adhesive or other mounting fixture. In certainembodiments, an air gap 244 may be introduced between the front surfaceof the display and the back surface of the touch sensitive element 240associated therewith by a perimeter spacer 248 (See FIG. 6C). The airgap 244 is believed to enhance the performance of the touch sensitiveelement 240 and also to help reduce radio frequency noise introducedinto the touch sensitive element 240 by the display. The air gap 244 maybe employed with or without a touch sensitive element 240 ground planeformed on the back surface of the touch sensitive element 240 andseparated therefrom by a dielectric spacer 207.

Portions of touch-sensitive element 240 may be adhesively attached tothe display and button light guide assemblies which are also coupled towindow support 250 (see, FIG. 5, element 180 f)). Aperture 220 in thewindow support 250 is aligned with touch sensitive button areas 222 aand an upper portion of the display. Aperture 220 is also aligned with atouch sensitive region of the touch-sensitive element 240 and overlies alower portion of the display. Stencil aperture 102 a is aligned with atouch-sensitive region 232 a and overlies an illumination source (notshown in this view). Similarly, stencil aperture 102 b is aligned with atouch-sensitive region 232 b and overlies an illumination source (notshown in this view). Window support 250 and adhesive (see, 180 b of FIG.5) may maintain the window and mask 200 in the desired relationship toother elements of the device and may include appropriate apertures formounting the display and the illumination sources.

In some cases, a mask having generally the same apertures and visualfeatures as described above may be formed on the outer surface of thewindow. The mask may be applied by any of the standard techniquesincluding, but not limited to lamination or in-mold application. In thisinstance, other components of the thermostat may be attached to theinner surface of the window without adversely affecting appearance. Forexample, the molded window and associated mask 200 may include bosses215 such as are shown in FIG. 6B. The bosses 215, like the windowsupport 250 described above, may serve as an assembly framework which isconfigured to receive a stacked array of relatively stationarycomponents of the thermostat. In some embodiments, the bosses 215 may beasymmetrically disposed and/or may differ in size or shape to helpensure that subsequently added components during assembly are assembledin the correct front side/backside orientation. In addition, one or moreof the bosses may be tapered and/or stepped to ensure that the order ofadded components is correct during assembly. In certain embodiments, theinner surface of the window may be relieved, for example, to provide athin section through which an IR sensor may view the room for occupantpresence and/or motion with minimal attenuation of the signal by thematerial of the window when delivered to an optical element 210 that isassociated with the IR sensor. In other embodiments, the window and maskmay include an aperture that is in registration with an optical element210 that is associated with an IR sensor.

In some instances, the programmable thermostat may be configured tobecome activated and powered when it senses the presence of a person infront of the programmable thermostat. This detection may be provided bya passive infrared sensor (PIR) and an associated optical element 210.The sensor may detect thermal radiation of a human body (5-12micrometers-infrared area [IR]). The sensor may include two separatedetector pads. A signal may be generated based on a time-based change ofthermal radiation received by the two separate detector pads. When soprovided, the IR wavelengths of interest are typically blocked by mostcommon optic materials. One suitable material for an optical windowand/or lens may be polyethylene (PE). Glass substantially blocks thewavelengths of interest and so glass windows may need to have anaperture to accommodate a proximity sensor and its lens.

A suitable lens, either positioned in the hole of a glass window orbehind a thinned section of a window, may incorporate sloped frontsurfaces and a corresponding convex rear surface to impart a degree ofdirectionality to the field(s) of view of the sensor. In someembodiments, the use of Fresnel lens designs may be desirable toincrease the amount of IR energy which reaches the sensor. In certainembodiments, the light gathering surfaces may desirably differ in sizeto compensate for transmission differences to equalize sensitivity indifferent directions. While IR sensors are disclosed here as oneexample, it is contemplated that any suitable sensor may be used, asdesired.

The capacitive touch element (or elements in some embodiments) may beadhered to the masked window 200 as shown in FIG. 6F. A display elementgroup “D” may be located between the window and the button light guideassembly/dampener 180 g which is positioned by the bosses 215. It willbe appreciated that the touch sensitive element(s) of the thermostat mayeach be implemented as a separate element, or may be provided with twoor more touch sensitive regions.

An illustrative multi-region touch sensitive assembly is shown in FIG.6E. In the non-limiting example, the touch sensitive element may beformed from a piece of flexible printed circuit material, which isfolded into a U-shape and adhered to opposite sides of a transparentdielectric spacer 207 as may be seen in enlarged detail A of FIG. 6E. Afirst half of the flexible printed circuit material may form a solidground plane extending over substantially the entire surface of thedielectric layer 207. The second half of the flexible printed circuitmaterial may form the capacitive elements of the touch sensitiveassembly, which may serve as the functional buttons, as well as ageneralized touch sensitive region associated with the active portionsof the display. As mentioned earlier, the touch sensitive assembly maybe adhered to the window and spaced a short distance from the face ofthe display to improve sensitivity and reduce noise.

Backlights such as LED backlights may be used to illuminate the stencilapertures in the window display mask for window 180 a of FIG. 5. In somecases, a three color LED may be mated with a custom lens and a diffuserto provide a relatively hot-spot free illumination from LED arraysmounted on a printed wiring board, 180 j of FIG. 5. In one example, thearea to be illuminated is 14 mm in diameter and is located 6 mm from theprinted wiring board. As seen from the window side in FIG. 7A, lens 310may be mounted to the window support 180 f of FIG. 5 at locations 311and over the LED(s) 320 on the printed wiring board. In some embodimentsthe lens 310 is combined with a diffuser 310 a. An illustrative lens isillustrated in cross-section in FIG. 7B. The LED array (or single LED)may produce light with a distribution cone angle of about 120 degreeswhich generally corresponds to the desired light output angle from thesystem. An illustrative ray 330 has been traced through the lens and thediffuser 310 a with a resulting output cone 340. Textured andnon-textured diffusers formed from polyethylene terephthalate (PET),acrylics, or acetal, each with thicknesses between 0.17 millimeters (mm)and 1.7 mm, have been shown to be functional with good wide angle lightoutput when the film is translucent and/or textured. In otherembodiments, the lens 310 may be formed from a translucent or milkymaterial thus combining the light capture/distribution functions withdiffusive scattering.

FIG. 7C illustrates a lens 310, shown in cross-section, which has anoptionally surface-textured inlet surface 312 and an optionallysurface-textured outlet surface 314. The position of the light source,such as an LED, is indicated by reference numeral 316. FIGS. 7D and 7Eprovide perspective views of an illustrative lens 310 output surface andinput surface respectively, as well as the associated mountingstructures 315. FIGS. 7F-7H illustrate various illustrative combinationsof a lens 310 and a diffusion component 312. FIG. 7F shows a lens with athick diffuser. FIG. 7G shows a lens with a thin diffuser. FIG. 7H showsa lens with an integral or combined diffuser.

For a thermostat, it is often important to have an accurate indicationof the ambient air temperature surrounding the thermostat. However, in athermostat that includes active electronics in a housing that has asealed appearance, it can be difficult to position a temperature sensorwithin the device where the influence of internally generated heat isminimized and where motion of housing components does not complicateconnecting the sensor to an appropriate PWB or daughter board. Of theavailable options in the illustrative design, the fixed window is anattractive locale. In some cases, a thermistor may be thermally bondedto the inside surface of the fixed window with a thermal grease to helpovercome the variations in positioning which may result from theassembly process.

In some instances, a temperature sensor such as thermistor 403 a ismounted on a flexible circuit member 403 (FIG. 8A) extending fromdaughterboard 403 b, which is connected in turn to the printed wiringboard 180 j of FIG. 5 by connector 405 as illustrated in FIG. 8B. Thedaughterboard 403 b may be mounted to window support 401 (see, 180 f ofFIG. 5) such that the circuit member 403, extending from daughterboard403 b, is inserted into an isolation pocket formed between window 404,the window support 401, and other internal structure(s) such as, forexample dampener 402 as may be seen in FIG. 8C. In some embodiments,window 404 may be considered as providing an outer housing wall 406 suchthat a pocket 408 is formed behind the outer housing wall 406.Daughterboard 403 b may extend beyond dampener 402 into pocket 408.Accordingly, and in some embodiments, thermistor 403 a is thermallyconnected to outer housing wall 406 and is thermally isolated from therest of the interior of the thermostat. It will be appreciated that thethermostat includes a plurality of heat producing components, and thethermistor 403 a is positioned within pocket 408 such that thermistor403 a is isolated from the plurality of heat producing components.

In some embodiments, contacts between the pocket forming structures andthe flexible circuit member 403 flex the flexible circuit member mountedthermistor 403 a against the window 404, reducing or eliminating theneed for manual positioning of a lead mounted thermistor 403 a and theneed for thermal contact grease. In some embodiments, flexible circuitmember 403 is configured to provide a bias force toward a non-flexedstate when flexed. In some embodiments, the bias force of flexiblecircuit member 403 biases the thermistor 403 a against outer housingwall 406.

As indicated above, a rotatable ring may form part of the outer surfaceof the HVAC controller. In some embodiments, an optical encoder, such asa reflective optical encoder, may be employed to detect rotation of therotatable ring.

In one example, a flange of the rotatable ring (see, 180 h of FIG. 5)may be captured between a fixed sliding ring (see, 180 i of FIG. 5) anda loading surface which includes 3 to 8 pressure applying paddles ascomponents of the button light guide assembly (see, 180 g of FIG. 5).Grease dots may be applied between the fixed sliding ring and therotatable ring to provide a desired degree of drag while keeping thegrease on the opposite side of the assemblies from the optical ringrotation encoder, if present.

One such example is shown in FIG. 9A. A flange 472 of a rotating ring470 extends inward and rides against a fixed sliding ring 460, sometimeswith grease 450 at the interface. In some embodiments, ridges andcorresponding relief portions of the rings 460, 470 provide a labyrinthseal which helps confine the grease 450 to the desired sliding interfacebetween the two rings.

In the example shown, cantilevered dampeners 480 a are positioned alongthe perimeter of button light guide assembly 480 and each dampener 480 aapplies a light pressure to a raised surface 474 of the flange 472 ofthe rotating ring 470. Although the deflection of the beams ofcantilevered dampeners 480 a is often sufficient to provide the desiredpressure, it will be appreciated that in some cases, pressure may besupplied by, or supplemented by, wire springs, wound springs, sheetmetal springs, a wave washer, and the like (not shown). In FIG. 9B, sixillustrative cantilevered dampeners 480 a are shown formed around theperimeter of the button light guide assembly 480 (see, 180 g of FIG. 5).In some instances, the button light guide assembly 480 is convenientlymounted to trap the rotating ring 470 (omitted for clarity) betweenbutton light guide assembly 480 and fixed sliding ring 460.

To sense the degree and direction of rotation of the rotating ring (see,180 h of FIG. 5), a surface of the rotating ring may be patterned, forexample by metalizing, to provide a reflective code ring to be sensed byan optical encoder capable of sensing rotational increments as pulses orthe like and further capable of sensing direction of rotation. In analternate embodiment, the rotating ring may include a plurality of teethdistributed around an inner or outer perimeter thereof as in the form ofa planetary, bevel, or ring gear adapted to mate with a complementarygear to drive an encoder which provides signals related to incrementalrotation and direction. See FIG. 10 for a non-limiting example of aplanetary gear 500 driving a spur gear 510, the shaft 520 of which maybe coupled to an encoder (not shown for clarity). FIG. 10A isillustrative of a rotating ring adapted for use with the gear andencoder arrangement. Other encoding methods may be used. In some cases,the metalized pattern may not form a continuous conductive ring aroundthe rotating ring to help minimize interference with radio frequencycommunication between the thermostat and other components of thebuilding automation system. Such a construction may help RFcommunications between an external device and an internal antenna of thethermostat.

FIG. 10B illustrates an illustrative code wheel 180 h with a reflectivecode 522 mounted on an inward extending flange 524 of the code wheel 180h. FIG. 10C shows the illustrative code wheel 180 h installed in an HVACcontroller, such as the HVAC controller shown in FIGS. 4-5. In someembodiments, the code wheel 180 h is a rotatable ring, and is disposedbetween a first stationary housing component and a second stationaryhousing component. For example, the first stationary housing componentmay include the button light guide assembly/dampener 180 g (FIG. 5) andthe second stationary housing component may include the sliding ring 180i (FIG. 5). It will be appreciated that either the first stationaryhousing component and/or the second stationary housing component mayinclude one or more additional components in combination with theaforementioned button light guide assembly/dampener 180 g and thesliding ring 180 i. The code wheel 180 h has an outer exposed surfacethat a user can use to rotate the code wheel 180 h.

In some embodiments, the rotatable ring or code wheel 180 h has a firstside 502 and an opposing second side 504. In the example shown in FIG.10C, the first side 502 of the code wheel 180 h is configured to slidealong a surface of the first stationary housing component and the secondside 504 of the code wheel 180 h is configured to slide along a surfaceof the second stationary housing component when the code wheel 180 h isrotated. The first side 502 of the code wheel 180 h includes an inwardextending flange 524 that extends towards a rotation axis of the codewheel 180 h and may be considered as having an encoded surface includinga reflective code 522. In some embodiments, the reflective code 522 maybe considered as facing towards a front of the thermostat, or away froma back of the thermostat.

The inward extending flange 524 may define an upward facing (in theillustrated orientation of FIG. 10C) surface that the reflective code522 may be mounted on. It is contemplated that the reflective code 522may be deposited, printed, adhered, etched or otherwise secured orformed on the upward facing surface of the inward extending flange 524.In some embodiments, the reflective code 522 may include a reflectiverepeating pattern that optionally varies with respect to rotationalposition on the encoded surface.

An encoder 526 is shown disposed over the inward extending flange 524 ofthe code wheel 180 h. In some embodiments, the encoder 526 may beconsidered as facing towards the back of the thermostat, or away fromthe front of the thermostat. In some embodiments, the encoder 526 is anoptical encoder. The encoder 526 is shown mounted above the upwardfacing surface of the inward extending flange 524 of the code wheel 180h. The encoder 526 may detect the reflective code 522 as the code wheel180 h is rotated by the user, and may output a signal that is indicativeof rotation of the code wheel 180 h that may be used as an input to thethermostat, such as to adjust a temperature setpoint or the like. Insome embodiments, the output signal of the stationary encoder 526indicates how far and in which direction the rotatable ring 180 h wasrotated by the user. It will be appreciated that in some instances, auser may rotate the rotatable ring 180 h in order to instruct thethermostat to change a temperature setpoint. The user may rotate therotatable ring 180 h in a first direction in order to increase atemperature setpoint, for example, and may rotate the rotatable ring 180h in a second, opposite direction, in order to decrease a temperaturesetpoint.

In other embodiments, the encoding element providing the functionassociated with the rotating ring or code wheel 180 h may be acapacitive or other touch-sensitive element. See FIG. 10D in which themovement of a user's finger 525 near or along an element of theperimeter of the thermostat is sensed to determine direction and degreeof motion and encoded to acquire the input information. In suchembodiments, a capacitive or other touch-sensitive element 527 withwhich the user interacts may, or may not, be configured to physicallymove while being manipulated. For example, in some instances, acapacitive or other touch sensitive element 527 may be configured toremain stationary to simplify the mechanical design of the thermostat,and to possibly improve reliability of the user interface of thethermostat. When so provided, a capacitive change may be caused by aninteraction (e.g. touch or near touch) between the capacitive or othertouch sensitive element 527 and a user's finger 525. This capacitivechange may be correlated to a direction and degree of motion of theuser's finger 525 along the capacitive or other touch-sensitive element527, and thus correlated to a desired input of the user. In onenon-limiting example, the relative and/or absolute position of theuser's finger 525 may be detected by heterodyning the frequency of afixed frequency oscillator with a variable frequency oscillator whosefrequency is altered by changes in capacitance caused by changes inposition of the user's finger along the capacitive or othertouch-sensitive element 527.

In some instances, a turning ring or the like may be provided, and maypresent a desired mechanical feel such as a damped turning ring feel asdiscussed above with reference to FIG. 9. In some cases, such a rotatingring may be positioned adjacent to a capacitive or other touch-sensitiveelement 527. In some instances, the rotating ring may include one ormore conductive elements that function similar to the user's finger 525discussed above. That is, the one or more conductive elements of therotating ring may be sensed (e.g. capacitively) by the capacitive orother touch-sensitive element 527.

In some instances, a rotating ring may include one or more magnets, andone or more stationary magnetic sensors may be used to detect therelative and/or absolute position of the rotating ring. In yet anotherexample, the encoding function associated with a rotating ring or codewheel 180 h may be provided by a rotational potentiometer or rotationalcapacitor, if desired.

In some instances, a rotating ring may be provided with markings alongan inward extending flange 524. The markings may be part of a regularpattern, or may be random or pseudo-random. The optical encoder 526 mayperiodically capture an image of the markings. The optical encoder maythen compare a previous image of the markings with a more recent imageof the markings, and may determine movement (i.e. direction anddisplacement) of specific markings, and thus movement of the rotatingring. Such an optical encoder may be the same or similar to that used inmany optical mice.

To help secure the thermostat to a wall mounting plate, it iscontemplated that one or more magnets may be used. This may help providea clean aesthetic appearance, sometimes without the need for protrusivelatches or exposed screw heads/holes. Non-limiting illustrativeembodiments of suitable magnetic mounts are illustrated in FIG. 11A-D. Athermostat 512 may be removably secured to a wall plate 533. The wallplate 533 may be secured to a wall. The thermostat 512 may include acontroller housing 532 that is releasably securable to the wall plate533. One of the controller housing 532 and the wall plate 533 mayinclude a permanent magnet while the other of the controller housing 532and the wall plate 533 may include a magnetically attracted materialsuch that the controller housing 532 may be releasably secured to thewall plate 533 based, at least in part, upon the magnetic attractionbetween the permanent magnet and the magnetically attracted material. Insome embodiments, the magnetically attracted material is a ferromagneticmaterial such as steel. In some embodiments, the magnetically attractedmaterial is another permanent magnet. It will be appreciated that ininstances employing two magnets, each magnet will be oriented to presentan opposite polarity to its paired magnet in order to provide anattractive force.

In the illustrative embodiment of FIG. 11A, the controller housing 532includes screws 531 having a ferromagnetic head 531 a which areattracted by a magnet 534 built into the wall plate 533. Other screws(not illustrated) may hold the wall plate 533 to the wall. In theembodiment of FIG. 11B, tubular magnets 535 are disposed within a recess535 a formed in a back surface 535 b of the body of the thermostat 538and are mounted about screws 536 in the body of thermostat 538 such thata magnetic circuit attracts a ferromagnetic plate 537 built into thewall plate 539. In the embodiment of FIG. 11C, a magnet 540 is pressedor glued into a pocket 540 a formed in a back surface 540 b ofthermostat casing 541 and attracts a ferromagnetic plate 543 which ispart of wall plate 542. In some embodiments, the magnet 540 isfrictionally held within the pocket 540 a, or with an adhesive. In theembodiment of FIG. 11D, a magnet 545 is placed in thermoplastic casing544 and attracts ferromagnetic plate 547 which is a part of wall plate546.

It will be appreciated that more than one of these embodiments may bepresent in any given thermostat/wall plate combination. In thoseembodiments which include more than one magnet, the ferromagnetic platemay interact with more than one magnet in the manner of a keeper. Itwill further be appreciated that in some embodiments (not illustratedseparately), the magnet(s) may be associated with the wall plate and theferromagnetic plate may be an element of the thermostat. In yet otherembodiments, both the thermostat and the wall plate may contain magnetsand those magnets may attract each other pairwise and/or may attractcorresponding ferromagnetic elements in the opposed wall plate orthermostat. In addition to holding the thermostat to the wall plate, themagnetic interactions described may serve to properly orient thethermostat relative to the wall plate. Although the illustratedembodiments include single linear magnets, it will be appreciated that“horseshoe” magnets and magnet arrays may be used.

In some embodiments, there may be an alignment feature that iscooperatively formed between the wall plate and the controller housing.For example, the case back 180 m (FIG. 5) and the wall plate 180 n (FIG.5) may, in combination, form an alignment feature. In some embodiments,the wall plate 180 n includes a terminal block having a rectangularshape formed around the terminal block. Likewise, the case back 180 mincludes a portion that fits into the rectangular shape. Thisinteraction helps properly align the case back 180 m with the wall plate180 n.

An improved battery terminal for a thermostat or other device is shownin FIGS. 12B-12C. In some instances, a thermostat may employ a userreplaceable battery. Conventional coiled spring battery terminals mustaccommodate variations in battery length as well as provide for easyinsertion of the battery into the battery holder. FIG. 12A shows aconventional coiled spring battery terminal secured to a base 551. Whenso provided, the coiled spring battery terminal tends to tiltundesirably as a result of the pitch of the helical spring 552 at theattachment to the base 551.

To help overcome this, and in some cases, a coiled spring batteryterminal 553 may include an end that is bent into an extended planarbase 554, which helps ensure that the coiled portion 555 of the coiledspring battery terminal remains oriented substantially perpendicular tothe base to which it is attached. The extended base 554 of the coiledspring battery terminal 553 may be secured to a base plate by crimping,welding, soldering, and/or the like. In some embodiments, the extendedbase 554 of the coiled spring battery terminal 553 may be substantiallyrectangular as shown in FIG. 12B, while in other embodiments, theextended base 554 may be round or have the form of a polygon. A deviceemploying the improved battery terminal is illustrated in FIG. 12C. Theimproved battery terminal base 553 may be attached to the printed wiringboard (see, 180 j of FIG. 5) by any mechanism including screws, rivets,adhesives, clips, and the like. In some instances, the attachment mayprovide an electrical connection between the battery terminal and theprinted wiring board. In certain embodiments, the battery holder mayposition the battery at least partially within the plane of the printedwiring board, but this is not required.

Greater ease of assembly and overall reduction of thermostat thicknessmay be attained by proper location of parts with regard to the printedwiring board (see, 180 j of FIG. 5). For example, a supercapacitor 563used to maintain electrical power to the thermostat in the event of apower failure and/or battery failure, often is manufactured with leadsextending from an end face thereof. Accordingly, mounting asupercapacitor 563 directly to the printed wiring board 560 may causethe supercapacitor 563 to extend away from the plane of the printedwiring board to an undesirable degree or may require the use of adaughterboard mounted at right angles to the printed wiring board whichrequires undesirable assembly costs. In addition, a supercapacitor 563often is somewhat sensitive to heat damage when soldering is used todirectly attach the supercapacitor 563 to a printed wiring board 560 ordaughterboard. These problems may be addressed by positioning thesupercapacitor 563 at least partially within the plane of the printedwiring board 560 and connecting the supercapacitor 563 to the printedwiring board 560 with wire leads and an optional connector as best shownin FIG. 13. In FIG. 13, the supercapacitor 563 may extend at leastpartially into relief 567 that is located along the bottom of theprinted wiring board 560.

A similar problem related to mounting a speaker 562 without suppressingsound generation and without damaging the speaker 562 during a solderingoperation may be addressed by mounting speaker 562 on a carrier 561which is, in turn, mounted to the printed wiring board 560, and byconnecting the speaker 562 to the printed wiring board 560 with leads asalso shown in FIG. 13.

In some instances, a thermostat may employ an illuminated light ringelement (see, 180 l of FIG. 5), which in some cases can be used toindicates a current operating condition of the device, for example:heating equipment on, cooling equipment on, or neither heating orcooling equipment on. Each operating condition may be indicated by thedisplay of a different color, which may be augmented by other audioand/or visual cues, if desired. In one example, colored lightingpresented on the device front panel and from the device back side may becoordinated to indicate the current operating condition. For example,matching front and back side illumination may be orange to indicate thatthe heating equipment is currently activated, blue illumination mayindicate cooling equipment is currently activated, and the absence ofillumination may indicate neither the heating equipment or coolingequipment is activated. These visual indications may be furthersupplemented and reinforced by the display of, for example, adistinctive colored icon such as an (orange) sun when heating and a(blue) snowflake when cooling, and/or by projecting an appropriate colorlight from the illuminated ring out along the back side of thethermostat onto an adjacent wall or mud ring. In certain embodiments,the color-keyed display features may persist if external power isavailable, and optionally may fade to a lower brightness level after apre-determined duration. When external power is not available, thedisplay brightness and duration may be diminished or even eliminatedquickly. In such low power consumption circumstances, illumination maybe confined to one of the window feature(s) and the illuminated ringelement near the thermostat base.

In an illustrative embodiment, orange is used to indicate heatingoperation, and may be represented by an orange temperature set point, anorange sun icon, and an orange light ring or halo around the device'sbase. Blue is used to indicate cooling operation and may be representedby a blue temperature set point, a blue snowflake, and a blue light ringaround the device's base. When neither heating nor cooling is on, theword Off may be displayed on the front display.

A user can press anywhere in the area designated for the colortemperature set point and color icon to select among the three operatingmodes. Once pressed, the temperature set point disappears and isreplaced by the icons for the three selectable modes—a sun for heatingmode, a snowflake for cooling mode and Off for an off mode. There may bean audio cue along with visual indication(s) to indicate to the userthat the thermostat is now in a mode selection state. The currentlyselected mode will be displayed in color while the two non-selectedmodes may be grayed out. The user can select a new mode, or return tothe current mode, by pressing one of these three options. The currentlyselected option may then be display in its designated color. At thecenter of the display, the actual temperature may disappear and may bereplaced by visual and/or written cues that provide further anexplanation of the currently selected mode.

By pressing the mode a second time, the user confirms that they want thedevice to switch to that mode. This mode choice can be confirmed after ashort period of touch-press inactivity. There may be audio cuesassociated to the initial selection and confirming button press actions.When the mode is confirmed, the two grayed out mode options maydisappear. For heating and cooling operation, the associated temperatureset point may appear in its designated color, alongside the matchingcolored icon for the selected mode. The device's light ring may alsochange to that color for a short period of time. This reaffirms to theuser that the mode has been locked into this particular operation. Ifthe heating or cooling equipment turns on, the colored icon for thatmode may animate in a way that indicates to the user that the heat orcooling equipment is on. For example, the temperature and/or theappropriate heat/cool icon may appear to shimmer. Also, the device'slight ring may illuminate with the corresponding color. For the Offmode, the user does not have a temperature set point being controlledto, and thus it does not appear. The word Off remains while the grayedout snowflake and sun disappear. The device's light ring may notilluminate in the Off Mode.

The light ring may be implemented as a circular light guide. In somecases, the light ring may direct light along a defined strip thatextends around at least a majority of the perimeter of the devicehousing. In some cases, the defined strip is on the front face of thedevice that is facing away from the all. In other cases, the definedstrip may extend along the side wall of the device, wherein the sidewall extends from the front face back toward the wall. In yet othercases, the defined strip may be on the back face of the device and mayproject light toward the wall to light up the wall, sometimes forming alight halo around the device.

Light extraction from the light guide may be tailored to provide auniform glow around the perimeter without significant bright or darkspots or, if desired, may be patterned. In some cases, light sourcesthat illuminate the light guide may be LEDS, including three colordevices to allow custom color mixing under program control. Although adefault color scheme has been described above, it will be appreciatedthat other color schemes may be employed and, in some embodiments, maybe user specified.

An illustrative light guide 600 is illustrated in FIG. 14A,corresponding to element 180 l of FIG. 5. In some embodiments, asillustrated, the light guide 600 has an annular shape that partiallyfits within the housing of the thermostat and partially extends outsideof the housing of the thermostat. With particular reference to FIG. 5,it can be seen that the light guide 600 has an annular shape that fitswithin the back ring 180 k. In some embodiments, a bulk of the lightguide body 606 (discussed below) fits within the back ring 180 k whilethe output section of the light guide 600 extends to a radial positionabout equal to an outer surface of the back ring 180 k.

The illustrative light guide includes two shaped light input pockets 601adapted to capture light from a light source (not illustrated in FIG.14A) which allows the light guide to project light of desired colorsonto a wall or mud ring to which the thermostat is mounted. In someembodiments, the light input pockets 601 may include a compound curvedsurface 601 a (FIG. 14B), as illustrated, that faces the light source.In some embodiments, at least a portion of the light source may bepositioned within the light input pockets 601.

The light guide 600 includes long bifurcated sections 603 that areadjacent to the shaped light input pockets 601. The bifurcated sections603 accept light from the shaped light input pockets 601 and distributethe light into a light guide body 606 that extends around the lightguide 600. FIGS. 14B and 14C provide additional views of the bifurcatedsections 603. In addition to the distribution function, the long inletsection 603 may help improve color mixing. In some embodiments, aportion of the light guide may be coated with a reflective material 604to improve retention of light in the transition region between the longinlet section 603 and the light guide body 606.

Region 605 of the light guide 600 may help reduce what would otherwisebe an unduly bright spot adjacent to that portion of the light guide 600and redirects excess illumination into the ring portion of the lightguide 600. In some embodiments, the surrounding components of thethermostat, such as a light reflective ring, also may contribute touniform distribution of light within the light guide.

In some embodiments, as illustrated, the bifurcated section 603 includesa first leg 603 a curving in a first direction and a second leg 603 bcurving in a second, opposing, direction. In some embodiments, the lightguide body 606 includes a first light guide body portion 606 a that isoptically coupled to the first leg 603 a and a second light guide bodyportion 606 b that is optically coupled to the second leg 603 b. In someembodiments, as illustrated, the light guide body 606 has a contouredprofile to aid in uniform light distribution. With illustrativereference to the first light guide body portion 606 a, it may be seenthat the first light guide body portion 606 a may have a maximum heightor volume proximate the bifurcated section 603 and a minimum height orvolume at a point 606 c that is spaced away from the bifurcated section603. In some cases, as illustrated, the minimum height or volume atpoint 606 c occurs at a position that is midway between two equallyspaced bifurcated sections 603.

The output section of the light guide is illustrated in greater detailin FIG. 14D, which illustrates an output turn 607 adapted to directlight toward the output surface 608. The output surface 608 may be atextured surface to enhance uniform light leakage to illuminate, forexample, the wall or mud ring (not shown) behind the thermostat. In someembodiments, the light guide 600 may be secured to the thermostathousing such that the output surface 608 may face the wall or othervertical surface to which the thermostat is securable. In an alternateembodiment, the light guide may be adapted to produce a modulatedillumination such that several brighter illuminated regions may beproduced, for example gradually reaching greatest brightness at 3, 6, 9,and 12 o'clock positions and diminishing in between for decorativeeffect or may be modulated to produce a generally uniform backgroundillumination with bright spots distributed around the illuminatedregion. These are just some example variations.

FIG. 14E illustrates the light guide 600 in combination with the printedwiring board 180 j (FIG. 5). In the example shown, the printed wiringboard 180 j includes a pair of light sources 602. As illustrated, eachof the pair of light sources 602 are equidistantly spaced apart from oneanother, about 180 degrees apart, and are positioned on the printedwiring board 180 j such that each of the light sources 602 arepositioned adjacent a corresponding input pocket 601 and bifurcatedsection 603. Accordingly, light emanating from each of the light sources602 may enter an input pocket 601 and bifurcated section 603, and thuspass into the light guide body 606. The light sources 602 may be anydesired light source. In some embodiments, each of the light sources 602includes one or more light emitting diodes (LED). In some cases, each ofthe light sources 602 may be a multicolor selectable LED.

FIG. 14F illustrates a lighting method that may be carried out using anHVAC controller that controls one or more HVAC components. A firstoperating state of the HVAC controller may be identified, as generallyindicated at block 632. In some cases, the HVAC controller may have twoor more distinct operating states. At block 634, a first color that isassigned to the first operating state may be identified. In someembodiments, each of the two or more distinct operating states may havedifferent assigned colors. The first color may be projected rearward andonto a surface upon which the HVAC controller is mountable, as generallyindicated at block 636. In some cases, the first color is shielded frombeing projected forward and away from the surface. In some embodiments,projecting the first color includes projecting an annular light ring onthe surface upon which the HVAC controller is mountable. In some cases,the annular light ring is substantially circumferentially uniform inintensity (e.g. halo).

In some embodiments, and as optionally indicated at block 638, a secondoperating state of the HVAC controller, different from the firstoperating state, may be identified. A second color, different from thefirst color, assigned to the second operating state may be identified asoptionally indicated at block 642. As optionally indicated at block 644,the second color may be projected rearward and onto the surface uponwhich the HVAC controller is mountable while shielding the second colorfrom being projected forward and away from the surface.

In some embodiments, the first operating state corresponds to the HVACcontroller causing an HVAC heating component(s) to be energized. Thesecond operating state may correspond to the HVAC controller causing anHVAC cooling component(s) to be energized. In some embodiments, a thirdoperating state corresponds to the HVAC controller not causing eitherthe HVAC heating component or the HVAC cooling component to be energized(off state). In some cases, when the HVAC controller is in the thirdoperating state, no color is projected rearward and onto the surfaceupon which the HVAC controller is mountable.

As alluded to above, the programmable thermostat may optionally includea “mud ring” adjacent the back side of the thermostat body and coveringa portion of the wall around the thermostat body. A “mud ring” is alarger decorative plate that fits between the wall and the thermostatand may cover a wall opening and/or an unpainted or mismatched wallsurface. In some embodiments, the mud ring may have an additionalfunction in that it may be large enough and shaped to cover that portionof the wall or an opening in the wall which had been covered by aprevious thermostat installation. A mud ring that provides this functionmay minimize the need to renew the decorative and aesthetic aspects ofthe wall in the vicinity of the thermostat. In other embodiments, themud ring may be a decorative element of the thermostat installation. Insuch embodiments, the mud ring may also serve as a suitable field uponwhich the light from a light guide described herein may be projected andin those embodiments it may be desirable to select the color and textureof the mud ring to help ensure that the light projected on the mud ringhas the desired visual impact. In some cases, the mud ring may have atextured surface to help reflect the incoming light forward toward auser. In some case, the textured surface may itself be patterned, suchas having one or more annular shaped textured surfaces around thethermostat on a generally non-textured mud ring.

In yet other embodiments, the mud ring may be omitted and light from thethermostat may be directed onto the wall itself. It will be appreciatedthat the mud ring may assume one of a variety of shapes and sizes. Incertain embodiments, the installation package for the thermostat mayinclude several optional mud rings to allow selection of a size, shapeand/or color that is best suited to the need for wall coverage and/oraesthetics.

The mud ring of the disclosure, if used, may be configured to mate withthe back of the wall plate assembly (see, 180 n of FIG. 5) before orafter mounting the wall plate assembly to the wall. In thoseinstallations which employ a mud ring, the mud ring may be provided withapertures to match corresponding features of the wall plate assembly,such as the wiring hole, screw holes, battery access openings, and thelike. In the illustrative embodiment of FIG. 15, the mud ring 610 may beattached to the wall plate assembly (not visible) by two orienting postsor hooks 612 and a latch 613 which maintain alignment between the mudring and the wall plate assembly. Other attachment elements such as aflange with latch portions, bayonet engagement features, screws, and/orany other suitable attachment mechanism may be used.

In some cases, the wall mount assembly may include features configuredto simplify initial wiring of the system. For a single transformerinstallation, a jumper may be used to connect the “R” and “Rc” terminalstogether at the wall plate, and the single transformer is connected tothe R terminal. In dual transformer systems, the jumper wire istypically removed, and wiring from one transformer is connected to an“R” terminal and the other transformer is connected to the “Rc”terminal.

Single transformer systems are most common, so a jumper can be includedby default. This requires that installers take the step of removing thejumper when wiring to the Rc terminal in a duel transformerinstallation. If this jumper is not removed, then the two transformersmay be shorted together in a way that could cause equipment damage. Thisis especially an issue in the Do-It-Yourself (DIY) market. Furthermore,the jumper designs often require larger terminals that can contain botha jumper and the wire to the transformer at the same time.

Some thermostats support configurable accessory outputs. Accessoriesthat have their own transformer often require two terminal connectionsso that the thermostat can complete the circuit enabling the accessory.Accessories that use the HVAC system transformer often require only oneterminal connection because the connection to the system transformer ismade within the thermostat. This presents a problem for installersbecause to use a single universal output that supports two possibleconnections on a system that requires only one requires extra wiring andsystem knowledge.

To address this, the jumper between the R/Rc terminals may be eliminatedby including a switch in the wall plate that has a physical actuator609A (FIG. 15A) that blocks access to the Rc terminal in the defaultposition (e.g. single transformer), and can be moved to expose the Rcterminal. When the physical actuator 609A blocks the Rc terminal, theswitch may automatically connect R and Rc and no external jumper wiremay be required. When the user wishes to connect a wire to Rc, thephysical actuator 609A is moved to expose the Rc terminal, which changesthe switch position to disconnect the jumper connection between R and Rcat the switch.

The configuration of the accessory output may be accomplished byincluding a switch in the wall plate that has a physical actuator 609Bthat blocks access to the second accessory terminal in the defaultposition, and can be moved to expose the second accessory terminal. Whenthe physical actuator 609B blocks the second accessory terminal, theswitch automatically forms an internal connection so that the thermostatcan switch the first accessory terminal using the HVAC systemtransformer. When the user wishes to connect a wire to the secondaccessory terminal, the physical actuator 609B may be moved to exposethe second accessory terminal, which changes the switch to disconnectthe connection to the HVAC system transformer and allows the thermostatto switch power from the external transformer. The switches of thedisclosure may continue to perform their function even if the thermostatis operating on battery power, if desired.

FIGS. 16A, 16B, 16C and 16D show switching function which may beaccomplished by switching the loads directly with a switch, or using theswitch as a signal in a TRIAC, FET, relay or other circuit. Withreference to FIGS. 16A and 16B, when FETs are used for R & RCconnections, pins 2 and 3 of the S1 switch are connected to each otherwhen using the single transformer, R-24VAC. 24VAC is applied to the Rterminal and the peak voltage is supplied to drain of Q2 through fastrecovery diode D8. At the same time, 3.3V generated by U2, voltageregulator IC, S-1142B and Q2, 2N7002, is applied to U1, TS3005 timer ICand FET SW VCC. Energy is stored and is transferred into D3, R1, and Q4through L1 when a pulse signal is at pin 5 of U1, TS3005 timer IC isapplied to gate of Q1. Once energy is applied to Q4, Q4 is switched onand stays on. 24VAC applied to R transfers to RC through Q4 and thethermostat starts working. After the thermostat functions, another 3.3Vis generated and is applied to VDD and 3.3VDC produced from R-24VAC iscut off by Q2 on and Q5 off. Under this mode of operation, the leakagecurrent flows only through D8, R9, and Q5. The thermostat CPU recognizesthat the device is powered by R through 0 volt applied to pin 1 of S1and turns on the power transformation circuitry powered by R-24VAC.

Pins 1 and 2 of S1 switch are connected to each other when using thedual transformer, RC-24VAC. The 3.3VDC produced from the R-24VAC is cutoff, the entire jumper circuit stops working, and the thermostat ispowered by RC-24VAC. Under this operation, the thermostat CPU recognizesthat the device is powered by RC-24VAC through 3.3 volts applied to pin1 of switch S1, and turns on the power transformation circuit powered byRC-24VAC and turns off the power transformation circuit powered byR-24VAC.

As shown in FIG. 16C, when a TRIAC is used for the R & RC connectionsand the switch is in default position, the TRIAC is fired by 4 diodesand the R and RC terminals are connected together. When the switch is inthe dual transformer position, the R and RC terminals are effectivelydisconnected.

As shown in FIG. 16D, when a TRIAC is used as a switch for R & U1 bconnections and the switch is in the default position, the TRIAC is notfired, and the R & RC are disconnected. When the switch is moved fromthe default position, the TRIAC is fired by 4 diodes, and the R and U1bterminals are connected together.

When relays are used for the R & RC or U1b connections, such as in caseswhere the switch is insufficient to carry the required current load, theswitch can be wired in series with a coil of a relay such that theoperation of the switch activates or deactivates the relay coil so thatthe relay switches the load appropriately.

In some instances, the thermostat may provide services beyondutilitarian control of an HVAC system. For example, and in some cases,the user can view today's weather forecast through one button press onthe device. When the thermostat is approached as determined by, forexample, an IR sensor, motion sensor, contact with a touch sensitiveregion of the window, or rotation of the turning ring, the device mayhighlight interaction points for the user using visual and/or audiocues, so that the user is intuitively guided through the experience. Oneof these highlighted interaction points may be an icon that representsweather. By pressing this point (e.g. a weather button such as weatherbutton 102 b), the display of an actual temperature, temperature setpoint, and system mode may be replaced by today's current weatherconditions, weather anticipated in 6 hours, and weather anticipated in12 hours. Each of these time points may provide an icon on the maindisplay that is associated with current conditions or with anticipatedfuture conditions in the area. There may also be a current and/orexpected temperature and humidity numeric value. When available from theweather source or readily calculable, the display may include a comfortindex. The single button press may provide a comprehensive outlook ofthe short term expected weather so users can plan their day quickly, andin some cases, optionally choose to activate a one-touch activity. Bypressing the weather button 102 b a second time, the weather informationmay disappear, restoring the home screen (e.g. actual temperature,temperature set point and currently selected system mode icon). If theuser does not press the weather button 102 b a second time, the devicemay automatically return to the home screen after a period of time.

While in the weather display mode, the device may allow the user toscroll through today's weather, historic weather, anticipated weather,and/or severe weather alert notifications using, for example therotatable dial or gestures on the touch screen, to activate a scrollthrough the options depending upon availability of that information froma networked source. In some embodiments, the thermostat may have accessto an exterior air sensor and may be capable of displaying parameters ofthe exterior air such as temperature and/or humidity.

The thermostat may convey details related to how the user's HVAC systemhas typically operated when similar outside weather (be it today's,historic, or future) is presented. For example, on a day where hightemperatures are expected to top 100° F., the device may display thattypically the air conditioner runs 12 hours to maintain ‘x’ degreetemperature inside where ‘x’ may be the currently programmed set point.Along with this display of typical operation parameters, there may be anindication, based on the current utility rates, of what the expectedcost associated with the indicated setting for this outside conditionmay be. In some cases, there may be an indication, based on the currentutility rates, of how much the user may save in cooling costs if theuser were to increase the set point by, for example, 3 degrees. This mayprovide additional information to the user upon which to baseadjustments to temperature, in addition to maintaining basic indoorcomfort. In some cases, the user may specify a daily cost budget forcooling the building, and the device may set the set point temperatureso that the expected cooling costs for that day stay under that budget.

In some embodiments, the programmable thermostat may include a selectionbutton which, when pressed, activates a first program module adapted tosend a query to a source of local weather information; a second programmodule adapted to receive weather information related to one of localweather conditions and anticipated local weather; a third program moduleadapted to convert received weather information to one or more ofdisplayable representations of alphanumeric data and icons; and adisplay driver for displaying the displayable representations of one ormore of alphanumeric data and icons on a display associated with theprogrammable thermostat. In related embodiments, the programmablethermostat may generate a query under program control for weatherinformation which may be sent to a source of local weather information.Upon receiving a response to the query or in response to receipt ofweather information generated by a source of local weather informationwithout an initiating query, the second module may be adapted to convertthe received weather information to a displayable form and to initiatedisplay of weather information at the thermostat. In certainembodiments, the programmable thermostat may be adapted to play a soundassociated with received weather information.

The overall organization of an illustrative HVAC system is shown in FIG.17. At a first level, the HVAC system may include a thermostat 18 and auser console 652. The user console 652 may be remote and onlyintermittently available through network 650. The network 650 mayprovide additional resources 658. As discussed previously, the network650 commonly will include a WiFi network as an initial link; howeverother components may be employed, for example, the Internet, cellularcommunication, REDLINK™, ZigBee, Bluetooth, IrDA, dedicated short rangecommunication (DSRC), EnOcean, and their functional equivalent. Incertain embodiments, portions of the network, including the initiallink, may be hard wired components, fiber optics, and the like andconnections to additional resources 658 often may be through hard wiredcomponents, fiber optics, and the like.

Within the thermostat 18, modules adapted to manage settings 620,weather related data and activities 630, and Smart Away functions 640associated with the window displays and controls may be present.Reference will be made to the illustrative thermostat shown in FIG. 17A.The settings module 620 may include a hardware block 622, which may beused to store and manage hardware settings for the thermostat and/orHVAC components. Blocks 624 and 626 store and manage home settings andaway settings, while block 628 provides control of advanced features.

Features associated with the weather module 630 may be accessed bytouching one of the stencil areas adjacent to the main display, whichmay present a weather related icon such as a sun partially obscured by acloud. In some embodiments, the weather related icon may be illuminatedby, for example, different colored lighting to indicate whether thefeatures are enabled and being viewed or enabled, but not being viewed.When the weather related icon is not illuminated, the weather relatedfeatures are not enabled. In FIG. 17A, the weather related icon is shownto the left of the main display. Similarly, features associated with theSmart Away module 640 may be accessed by touching a stencil area whichpresents an icon associated with that function, for example, a home (seeFIG. 17A). In FIG. 17A, the Smart Away icon is shown to the right of themain display.

In some embodiments, the hardware module 622 may be accessed by touchingan upper region optionally defined by a display mask to allow the userto alter basic system functions such as the selection of operating mode,for example Cool/Off/Heat, with appropriate visual and/or audible cueaccompaniment. (See FIG. 17B). In some embodiments, the cooling functionmay be accessed by touching an icon such as a snow flake; the heatingfunction may be accessed by touching an icon such as a sun (not shown inFIG. 17B); and the HVAC functions may be turned off by touching the wordOFF (also not shown in FIG. 17B).

In the discussion of user interface functions that follows, the detailsof steps of routine user interactions through the hardware module and toor among the modules will be omitted to simplify the descriptions, butwill be understood to occur in the background as necessary to implementthe commands. During periods with no user interaction, the thermostatdisplay may dim to a preset level, for example 30% of maximumbrightness, as illustrated by dotted lines in FIG. 17E. When thethermostat senses that interaction is desired or pending, as exemplifiedby activation of a touch control, activation by a cellphone or PCapplication, or upon sensing the presence of a person in the room withthe thermostat, the thermostat display may assume an active state, forexample, that of FIG. 17B or 17D for the cooling mode, and increasesdisplay brightness to 100%. In FIG. 17B, cooling is off because thetemperature is near the set point (perhaps within 1 degree). The coolingicon, a blue snowflake, is static, and the current cooling set-point (71degrees), also displayed in blue for cooling, are displayed in the upperportion of the display. The current room temperature (72 degrees) isdisplayed in the lower or main display window.

In FIG. 17C, the outer ring of the thermostat has been rotated by theuser (or the set-point has been changed by an external source such as acell phone or PC application or the action of a One-Touch button) tolower the set-point to the now displayed 68 degrees, whereupon a bluelight ring illuminates the wall or mud ring adjacent to the thermostatto acknowledge the change and the blue snowflake animates. Theillumination of the light ring is illustrated by the thick black lineextending around the perimeter of the thermostat. After a preset time,the light ring extinguishes, as shown in FIG. 17D, but the bluesnowflake continues to animate, for example by shimmering, asillustrated in FIG. 17E, while the cooling hardware is active. Analogousactions may occur in heat mode, activated by touching the sun icon inthe upper mode display area, as shown in FIG. 17F in which the set-pointhas been changed to 74 degrees such that the new set-point temperature,74 degrees and the sun are displayed in orange to indicate heating mode,the light ring glows orange for a preset time to acknowledge the change,and the orange sun animates, for example by shimmering, while theheating hardware is active.

In some embodiments, pressing one of the touch sensitive stencil areasadjacent to the main display, in this example, the house stencil icon tothe right of the main display, activates a Smart Away feature, governedby Smart Away module 640, which provides simplified short-termmodification of the normally active program settings. When activated,the Smart Away feature may acknowledge the selection of the Smart Awaymodule 640 by changing the color of the illumination of the housestencil icon and optionally changing the color of the light ringillumination, adding “Smart Away” text to the main display, storing thecurrent state of the thermostat (for example, Cool/OFF/Heat andset-point) and replacing the upper window or portion of the display withthree options in the upper display area or window with the default being“Time” and the remaining options being “Hours” and “Days”, as shown inFIG. 17G. The dotted pattern around the perimeter of FIG. 17G is used toindicate a color change of the light ring illumination.

In the default Time—Smart Away mode, the main display indicates thecurrent time plus one hour and the time may be increased in 15 minutesby rotating the outer ring. To accept the displayed return time, theuser may press the house stencil icon a second time or Auto Accept bywaiting a specified amount of time such as 9 seconds.

A second Smart Away mode, Hours—Smart Away, initially displays a defaulttwo hour Smart Away period which may be adjusted from, for example 1-24hours in half hour increments by rotating the outer ring. As before, toaccept the displayed away time, the user may press the house stencilicon a second time or Auto Accept by waiting a specified amount of timesuch as 9 seconds.

A third Smart Away mode, Days—Smart Away, starts with a display of thecurrent day of the week and current time and advances in three hourincrements to an anticipated return time and date by turning the outerring. As before, to accept the displayed away time, the user may pressthe house stencil icon a second time or Auto Accept by waiting aspecified amount of time such as 9 seconds.

Once the Smart Away mode has been set and accepted, the house stencilicon may be illuminated to indicate that a Smart Away mode is active andthe light ring may illuminate the wall or mud ring with an appropriatecolor cue for a specified length of time. In some embodiments, the housestencil icon illuminates at reduced brightness when Smart Away actionsare active and may fade to off periodically to indicate that thefunction is engaged, as shown by the dashed home icon in FIG. 17H. Incertain embodiments, an audio cue may be played when the house stencilicon is touched, when the Smart Away setting is accepted, and/or whenthe outer ring is turned to alter the displayed setting. It will beappreciated that each action and/or display change may be accompanied byappropriate animation and/or playing of audio cues. Audio cues areespecially useful for visually impaired users. After a period ofinactivity within the room, the display may return to sleep mode toconserve battery power.

When entering a Smart Away mode, the thermostat may remember the currentsettings to be reinstated at the termination of the Smart Away mode andmay, if desired, remember the current Smart Away settings for use as thedefault to be displayed when re-entering the Smart Away mode at a laterdate.

If desired, the user may set the operating mode to Cool or Heat and seta temperature set-point before entering the Smart Away mode. In thealternative, a Cool mode increment and/or Heat mode decrement may beentered as a default during system installation or by using a cell phoneor PC application. In certain embodiments, the thermostat may learn theusers' preferences and use those as suggested temperature set-pointswhen entering the Smart Away mode. In certain other embodiments, theuser may elect to allow a remote manufacturer's server to select and/oralter the temperature to be maintained based upon, for example, one ormore of the anticipated or actual weather in the vicinity, energyconsumption considerations, historical data regarding the rate oftemperature recovery in various conditions, and the like. Such servercontrolled temperature settings may be provided through the networkingcapability of the thermostat. Further, the user may override thetemperature setting in anticipation of, for example, an early return, byusing a cell phone or PC application.

An active Smart Away mode may be turned off at the thermostat bytouching the house stencil icon, turning the outer ring, and/or changingthe Cool/OFF/Heat mode manually. This may be acknowledged on the maindisplay and by turning off the house stencil icon illumination. When aSmart Away activity expires or is turned off, the system may restore thepreviously stored state of the thermostat, for example mode andset-point, and may return to normal operation.

A weather module 300 may be accessed through the hardware module 202 bytouching the one of the stencil areas adjacent to the main display whichpresents a weather related icon. Some illustrative features of such amodule are as follows.

Typically, if the thermostat is not currently connected to a network,the weather related icon may not be illuminated. When the weatherrelated icon is illuminated and touched, the thermostat may acknowledgethe selection of the weather module 300 by changing the color of theillumination of the weather related icon and optionally the light ringillumination, stores the current state of the thermostat (for example,Cool/OFF/Heat and set-point) and replaces the upper window or portion ofthe display with options such as “Now” and “12 Hour” with the default“Now” selected. With “Now” selected, the main display may continue todisplay the current temperature of the room and in addition may displaythe outdoor temperature, relative humidity, and an icon representing thecurrent weather as obtained through a network connection from a selectedlocal weather source. In some embodiments, the display may include, orin the alternative display, the expected high and low temperature forthe day. In addition, any severe weather alerts may be displayed as textand/or an icon.

When the “12 Hour” option is selected by the user, the main display maybe replaced by three rows of information indicating conditions at thecurrent time to the nearest hour, the current time plus 6 hours, and thecurrent time plus 12 hours. As before, the current weather informationand forecast may be obtained through a network connection from a localweather source. Each of the three rows of information, in addition tothe appropriate time, may display an outdoor temperature and an iconindicating the expected weather conditions for that time. In someembodiments, the thermostat may restore the previous state of thethermostat after a preselected interval such as 9 seconds. In otherembodiments, the thermostat may restore the previous state of thethermostat after the preselected interval following a failure to detectmotion in the room with an IR motion sensor. The display in the Off modeis illustrated in FIG. 17I.

It will be appreciated that the actions and display changes may beaccompanied by appropriate animation and/or playing of audio cues. Itwill be further appreciated that the display of weather information maytake on any of a number of alternate forms, a few of which areillustrated in FIGS. 17J-17l.

In addition to the functions discussed herein, the thermostat mayinclude additional display capabilities, such as reporting systemstatus, and/or may initiate other actions. For example, the thermostatmay detect a low battery condition and send a message via WiFi or otherlink to the network and thence to a cell phone and/or PC application,perhaps by SMS text message or e-mail, to warn of the low batterycondition. In the event of a very low battery condition, the thermostatmay display a low battery icon. In a survival mode, the thermostat mayblank the display to conserve power, send additional messages via theWiFi or other link to the network and thence to a cell phone and/or PCapplication, perhaps by SMS text message or e-mail, and continue tocontrol the HVAC equipment, perhaps in a state of delayed responsivenessto further conserve power.

If a WiFi enabled thermostat loses contact with the WiFi network for asignificant period of time, perhaps three attempts to make contact at 30minute intervals, the display may include a “No WiFi” message and/oricon. In the absence of WiFi or other network connection, thethermostat's user interface may disable certain features which dependupon network connection(s). For example, if the weather module isactivated by touching the weather related stencil, if a pre-programmedaction needs weather information, or if the Smart Away function requestsweather information, perhaps through a manufacturer's or other server,the thermostat may display a message indicating that the requestedfunction is not available, perhaps with an indication of the time atwhich the loss of connection was noted and/or an appropriate icon. Ingeneral, the thermostat may resume the default operation profile aftercompeting any currently active Smart Away or one-touch operation whichdoes not require a network connection. In some embodiments, thethermostat may suggest corrective actions such as restarting the router,calling the ISP, or calling the manufacturer of the thermostat. After apre-selected time interval, the thermostat may resume the normal displaymode and/or the normal display mode with a “No WiFi” message and/oricon. Following such actions, the thermostat may sense a lack ofactivity in the usual manner and enter a sleep mode after a specifiedtime interval.

Other icons and/or text messages may be used to convey error conditionsand/or the receipt and installation of firmware updates or instructionsfrom the cell phone, PC, or manufacturer's server, as desired.

In some cases, user configurable one-touch actions may be provided. Suchone-touch actions may be setup or activated at the thermostat itself,via a network such as by a cellular phone network, the Internet, a localWiFi network, and/or the like or combinations thereof. In some cases,access to a list of available one-touch actions may be provided bypressing a button or stencil on the window of the thermostat. In certainembodiments, the button or stencil may be double-touched to accessone-touch actions and single-touched to access other functions such asSmart Away. In other embodiments, the one-touch actions may be accessedby maintaining contact with the button or stencil for a predeterminedlength of time (e.g. holding the button in for 5 seconds). When aone-touch menu is accessed at the thermostat, the upper display area ofthe thermostat may include two touch-activated regions for navigatingthe list of available one-touch commands and a touch-activated regionfor activating the selected command. The upper display area may includeappropriate icons, for example up and down arrows and an “>” character,and activation(s) may be accompanied by appropriate audio and/or visualcues.

One-touch actions may be particularly for those people who do not livelife by a set schedule and have a need for a HVAC system that easilyaccommodates modification of routine operation of the HVAC system byintroducing pre-programmed or readily programmed macros that allow rapidand unique personal customization on a one-time or recurring basis. Insome cases, the interface may allow one-touch activation of previouslyconfigured macros that may be provided for primarily time-based and/ornon-time-based events as well as for non-time-based activities with aknown time component.

Time-based events may include those events with at least one of adesignated start time, a designated end time, and a duration designationin conjunction with a function, such as heat, cool, fan-on, and thelike. In some events, the function may be inferred by the indicateddirection of temperature change. Actions to be initiated by such eventsmay be specified in a variety of ways. As a non-limiting example, anevent may lower the current set point of the thermostat by 7 degrees fora period of 20 minutes starting at the current time. As anothernon-limiting example, the event may raise the set point 5 degrees fortwo hours starting at 3:40 PM on Tuesdays, Thursdays, and Fridays untilfurther notice. The latter instance may, for example, be useful tobetter accommodate a student who is engaging in after school activitiesfor a semester.

Non-limiting examples of non-time-based actions or activities includeinterests, weather, lifestyle, level of activity, home efficiency,number of occupants, detected presence of specific individual(s), andthe like. Associated displays may include a clock, HVAC activity,outdoor conditions, alerts, and communications. In certain embodiments,the actions or activities may include conditional logic, for example,increase the set point by 5 degrees at 4:30 AM Monday-Friday IF theoutdoor temperature is less than 20° F. AND the home is unoccupied. Someactions may simply increase or decrease the current set point by a fewdegrees until the next regularly scheduled temperature change toincrease comfort if the user feels chilly or warm at the moment.

One-touch actions may be viewed as personalized modifications, ormacros, added to a background program which typically has been fixed byprogramming temperatures to be maintained between fixed times within adaily profile. One-touch actions may introduce convenient variations orover-rides to a daily schedule which persist for a fixed time intervalor until the next pre-programmed daily schedule action. For example, ifa user occasionally decides in the morning to exercise in the home gymafter work, a one-touch button activated in the morning may direct thesystem to lower the set point by 5° F. at 5:00 PM to accommodate theincreased activity level. If, on the other hand, the user decides to goshopping before going home, the onset of a previously programmedtemperature change may be delayed by 1.5 hours to save energy byactivating a one-touch action.

In some embodiments, one-touch actions may provide incremental changesin the current set point while in other embodiments one-touch actionsmay initiate a change in a set point to a specified value. For users whofrequently travel, a one-touch action may toggle the daily program fromone group of temperature settings for time intervals to a correspondinggroup of “away from home” settings. The one-touch actions may specifyqualifiers such as days of the week and absolute or relative times.One-touch actions may be conditionally based upon external or internaldata. The thermostat may query a local weather service and, for example,raise the set point by five degrees for fifteen minutes when users areexpected to arrive if the external temperature is below zero degrees tocompensate for the introduction of cold air into parts of the houseremote from the thermostat and to greet the user with a warm home ifdesired. The thermostat may also be responsive to the presence of usersin the room or home at times when the house is expected to beunoccupied. This information may come from a variety of sources. Forexample, an IR sensor in the thermostat may determine that people aremoving in the room, or may be aware of motion sensors associated with analarm system for the house through a wired or wireless connection. Inaddition, the thermostat may be aware of the presence or even theapproach to the home of one or more users through signals from cellphones or tablet computers which have an enabled location service suchthat the one-touch action may alter the current set point to prepare thehouse for occupancy.

A simplified programming environment may be used to pre-program aspectsof the operation of a thermostat and to implement pre-programmed aspectsof the operation of a thermostat. Within an application running on, forexample a cell phone, tablet computer, or personal computer, a user maycreate one-touch actions that are relevant to them and create a uniqueset of home comfort conditions that are ideal for them. Once programmed,the one-touch actions may be transmitted to a WiFi enabled thermostatvia a network such as by a cellular phone network, the Internet, a localWiFi network, and/or the like or combinations thereof for storage at thethermostat. The one-touch actions may be invoked (over-ride thecurrently programmed schedule) remotely and/or at the thermostat. Insome embodiments, as the thermostat “learns” which one-touch actions aremore frequently used, the thermostat may order the list of availableone-touch actions or macros to present the available actions infrequency-of-use order. In other embodiments, the list of availableone-touch actions may be presented or ordered by other criteria such asby who created the action or may be presented or ordered according totheir date of creation. In still other embodiments, the one-touchcommands may be ordered chronologically according to the order in whichcertain events are expected to occur such as, for example: wake, leave,home, sleep. Other less frequently used one-touch actions such asone-touch actions related to comfort settings for a party or economysettings for a vacation may appear towards the end of the list ofone-touch actions that are displayed. Other groupings and/or ordering bya user configurable drag-and-drop list may be employed.

At the thermostat, consumers can choose to display available one-touchactions such that they are actionable and available to the consumer bypressing a window button. When engaged, these actions may driveconditions within the house to pre-configured settings with one consumertouch or may alter or over-ride the underlying basic schedule such thatthe change is implemented at some future time. These actions may becustomized and chosen by the consumer so that they have controls andfunctionality which are time or non-time based and which are relevant tothem. While “one-touch” is used as a descriptor to indicate ease of use,it is contemplated that more than one touch may be required to activatethe action, depending on the implementation.

In one example one-touch action, the user or users may configure aone-touch action for when people will or won't be at home to maximizecomfort when home and maximize savings when away. A user may, ifdesired, configure a group of one-touch actions to conserve energy whenthey decide to leave the house for an extended period of time such as a3, 4, 5, or 6 hour temperature set back, for example to dine and attenda movie or concert. In other embodiments, the away from home options maybe a partially or completely pre-programmed system option. The user mayalso configure lifestyle or level of activity actions, such as exerciseroom work out time. When turning this action on, for example, the homemay be cooled, or allowed to cool, more than normal by lowering the setpoint and the fan may be set to circulate more, since people typicallyfeel hotter when using an exercise room. Such actions may be implementedto start immediately or at a specified time. In some cases, such onetouch actions can be implemented for only a selected zone or selectedzones of a zoned HVAC system.

In addition, at the thermostat, consumers can choose to have simpleinformation displayed to them which are unique and/or relevant to them,such as weather, clock, or HVAC activity. These one-touch actions andinformation displays may be configured and displayed alongside orinstead of other one-touch actions such that operation remainsintuitive.

The option to configure one-touch actions using a cell phone, tablet, orpersonal computer application allows the user experience to be richerand more intuitive in view of the greater display and input options. Thelarger application display area may, for example, display categories ofactions and fully displayed lists of options for selection rather thanrequiring stepping through menus. Similarly, some inputs may be moreconveniently entered directly from a keyboard or a pull-down list ratherthan up or down stepping. For example, a scrolling list may be somewhatlimited as to the reasonable number of time increments whereas a usermay enter a time such as 4:23 directly from a keyboard, if desired,rather than being limited to, for example, 10 minute increments in alist.

The one touch actions may be considered user defined macros. In somecases, each of the macros may include a user selected trigger, and acorresponding user selected action. FIG. 18A provides a block diagram ofa building automation system 770 while FIG. 18B provides a block diagramof a remote user device 772 that can be used in conjunction with thebuilding automation system 770.

In some embodiments, the building automation system 770 includes amemory 776 for storing one or more user defined macros and a controller776 that is operably coupled to the memory 776 . For each of the userdefined macros, the controller 774 may be configured to determine when auser selected trigger occurs, and in response, outputs one or morecontrol signals to achieve the corresponding user selected action. Insome embodiments, at least one of the user defined macros has a namethat is user defined, and wherein the user defined name is displayed ona display. The display may be part of the building automation system 770and/or the remote user device 772, among others.

In some embodiments, for a particular user defined macro, the userselected trigger may be selected from a plurality of predefinedtriggers. Illustrative but non-limiting examples of suitable triggersinclude activation by a user, activation at a specified time, activationwhen no one is home, and activation when someone is home. In someembodiments, for a particular user defined macro, the user selectedaction may be selected from a plurality of predefined actions. In somecases, the plurality of predefined actions may be programmed into thebuilding automation system 770, for example. Illustrative butnon-limiting examples of predefined actions include lowering thetemperature by a specified amount, raising the temperature by aspecified amount, lowering the temperature by a specified amount for aspecified length of time, raising the temperature by a specified amountfor a specified length of time, changing the temperature to a specifiedvalue, changing the temperature in one or more specified zones, loweringthe humidity by a specified amount, raising the humidity by a specifiedamount, lowering the humidity by a specified amount for a specifiedlength of time, raising the humidity by a specified amount for aspecified length of time, activating a fan to circulate air,deactivating a fan to not circulate air, activating a heat exchanger,deactivating a heat exchanger, activate a security system, deactivate asecurity system, turn on lights, turn off lights, open a garage door,close a garage door, turn on a pool pump, turn off a pool pump, turn onan appliance, and turn off an appliance.

In some embodiments, the building automation system 770 may include acommunications port 778 that is operably coupled to the controller 774and that is configured to receive input from a user. In some cases, theinput from a user includes but is not limited to a user selected triggerand a corresponding user selected action for at least some of the one ormore user defined macros. In some cases, the communications port 778 isconfigured to receive input from a user's remote device such as a smartphone, a tablet computer, a laptop computer and a personal computer. Insome embodiments, a user's remote device may include the remote userdevice 772 (FIG. 18B).

In some embodiments, the communications port 778 is configured to outputone or more control signals for controlling building automationequipment (not illustrated). In some embodiments, the memory 776 , thecontroller 774 and the communications port 778 may be part of a server,but this is not required. In some cases, the communications port 778 maybe configured to output the one or more control signals to a buildingcontroller such as a building controller 780. In response, the buildingcontroller 780 may provide one or more control signals for controllingbuilding automation equipment. Illustrative but non-limiting examples ofbuilding automation equipment include HVAC equipment, securityequipment, lighting equipment and the like.

The remote user device 772 (FIG. 18B) may, as noted above, represent avariety of different devices, including but not limited to a smartphone, a tablet computer, a laptop computer, and a personal computer.The remote user device 772 may include a user interface 782 and a memory784 for storing one or more user defined macros, each of which include auser selected trigger and a user selected action. A controller 786 isoperably coupled to the memory 784, the user interface 782 and acommunications port 788. In some cases, the communications port 788 is awireless communications port, but this is not required.

In some embodiments, the controller 786 may be configured to accept, viathe user interface 782, a definition for a new user defined macro. Thecontroller 786 displays a plurality of triggers via the user interface782 and accepts a selection of a user selected trigger for the new userdefined macro. The controller 786 then displays a plurality of actionsvia the user interface 782, and accepts a selection of a user selectedaction for the new user defined macro. The new user defined macro isstored in the memory 784 and is transmitted to a remote location,optionally a remote server, via the communications port 788.

FIG. 18C is a flow diagram of an illustrative method that may be carriedout using the building automation system 770 (FIG. 18A) and/or theremote user device 772 (FIG. 18B).

As generally shown at block 790, a plurality of one touch icons may bedisplayed on a display, each of the plurality of one touch iconscorresponding to one of a plurality of user defined macros that eachincludes a user assigned action. One of the plurality of one touch iconsmay be selected by a user, as indicated at block 792. The user definedmacro that corresponds to the selected one of the plurality of one touchicons may then be executed, including causing control signals to be sentto the building control system to implement the user selected action asgenerally indicated at block 794. In some cases, the displaying step ofblock 790 and/or the accepting step of block 792 may be performed on aremote user device such as the remote user device 772 (FIG. 18B), whichas noted may be a smart phone, a tablet computer, a laptop computer or apersonal computer.

In some embodiments, and as indicated at optional block 796, a user maybe allowed to customize the name of at least one of the one touch icons,and to display the customized name on the display when displaying theplurality of one touch icons on a display. In some cases, and asindicated at optional block 798, a user may be allowed to define one ormore new one touch icons and corresponding user defined macro, and todisplay the one or more new one touch icons on the display for selectionby the user.

FIGS. 18D-18J provide illustrative but non-limiting examples of screensfrom an illustrative remote user device. It will be appreciated thatthese screens provide additional examples of user defined triggers andcorresponding user defined actions. In FIG. 18D, an initial screen 700may present the user with options for triggering the one-touch actionwhich may include a “You Tap on a setting”, “It is a specified time”,“Your house is empty”, “Someone is at home”, and the like at 700 a. Ifthe user selects “You Tap on a setting”, the programming application maypresent common options such as “Use at home settings”, “Make it 5degrees cooler”, “Make it 5 degrees warmer”, “Use economy settings”,“Use Away settings”, “Circulate the air”, and the like at 710 (see FIG.18E). Within those common options, in addition to the option to accept apresented default, the application may present additional opportunitiesfor customization as seen at 710 a, 710 b. For example, followingselection of one of the “Make it 5 degrees cooler” and “Make it 5degrees warmer” options, the application may provide a button whichpresents an additional menu with the option to provide finer control ofthe temperature offset and conditions for applying the offset. In someembodiments, the application may present options for the offset in 1degree increments from 1 degree to 10 degrees, or other convenientrange, and allow the user to specify whether the action applies whenheating or cooling. In other embodiments, the application may presentthe offset as a display of the temperature to be maintained.Alternatively, the application program code may display an adjustedtemperature setpoint adjacent a temperature offset. The adjustedtemperature setpoint is reflective of the temperature setpoint thatresults after the temperature setpoint is applied. In certainembodiments, those buttons which admit of further options in addition toa default value may include a sub-icon such as an arrow which ifselected provides further options. In such embodiments, selection of thebutton which admits of further options may require confirmation of theselection in the form of, for example, a double-tap or selection of a“Next” button within the display.

When the “use eco mode” is selected via screen 710, the screen 720 maybe displayed. As can be seen, the application may set upper and lowerlimits on a departure from the set-point temperature in screen 720. Oncethe desired conditions for the new one-touch action have been selected,the user may be presented with the option to name the new setting 730and to add it to the list of available one-touch actions 740 and theinformation may be shared with other devices which may initiateone-touch actions within the system such that the newly created actionis available from all devices associated with the thermostat.

When the triggering event “It is a specified time” on screen 700 a (FIG.18D), the application may specify the triggering time(s) and day(s) ofthe week for the action and pass control to the previously describedtemperature modification options and following selection of thoseoptions to the naming and distribution functions described above.

The one-touch actions may also be programmed to be responsive to thepresence 750 or absence 760 of occupants within the house and/or, insome embodiments, within a user specified distance from the house. SeeFIG. 18H. As can be seen in FIG. 18H, in some instances, the location ofthe house may be defined by its full address. In some cases, this may bea street address. In other cases, the full address may be a GPS positionand/or a position identified via a cellular network. In some instances,the full address may refer to longitude and latitude values. These arejust some examples.

As discussed herein, the thermostat may employ an IR sensor andassociated optical element 210 within the thermostat to determine thatpeople are moving in the room, or may be aware of motion sensorsassociated with an alarm system for the house through a wirelessconnection. The system may determine that all occupants are absent bythe failure to sense an occupant for a specified length of time. Inaddition, the thermostat may be aware of the presence or even theapproach to the home of one or more users through signals from a cellphone or tablet computer which has an enabled location service. Suchuser related location services may be generalized such that thedeparture of all registered users or the departures of each member of asubgroup of registered users may trigger the specified settings.Similarly, the approach or presence of any registered user or of one ormore specific individual registered users may trigger the specifiedsettings.

An example of programming one touch actions for a zoned system (e.g.upstairs and downstairs) is shown in FIGS. 18I-18J.

In addition to the expressly described programming functions, theapplication(s) will be understood to include the ordinary editing,cancelation, deleting, etc. actions of a user interface as well asscreens for presenting, selecting, and activating one-touch actions. Theapplication may include the capability of providing comments or otherinformation for display when a one-touch application is active. In someembodiments, such additional information may be in the form of a usersupplied graphic and/or may be accompanied by an audio cue.

Once configured, whether at the device or at a remote applicationlocation, one-touch actions may be activated at the device or at remoteapplication location(s). In addition, simple information may bedisplayed on the device and optionally may be accompanied by audio cues.

In some instances, the thermostat may transfer operational data to anapplication or applications which reside on one or more of a cell phone,personal computer, and remote server for analysis and compilation ofreports for the user. As discussed herein, the data transfers involvedmay be accomplished via wireless communication links, wired connections,or combinations of wireless communication links and wired connectionsusing one or more of the commonly employed communication protocols. Insome embodiments, the information may be accumulated and transferred toone or more of a cell phone, personal computer, or remote server fromanother component of the HVAC system such as an equipment interfacemodule. Such transfers may be initiated by either the informationcollecting equipment (the thermostat or equipment interface module) orby a receiving application running on the one or more of a cell phone,personal computer, and remote server. The transfer of information mayoccur on a regular schedule, upon the occurrence of a triggering eventwithin the system, or may be initiated by the user. Illustrative sourcesdriving the transfer of information and/or the delivery of a message mayinclude, but are not limited to: user behavior; historical behavior,neighborhood/local trends in behavior (e.g. local trends in energyusage); local weather and impending weather events; energy consumption;HVAC controller status (e.g. loss of network connection, low batter,etc.); HVAC system status; smartphone location; and/or events occurringat the HVAC controller. In some instances, one of the informationcollecting equipment, the one or more of a cell phone, personalcomputer, or remote server may not be on-line or otherwise available toparticipate in an exchange of data, alerts, or reports at the time thatsuch exchanges would normally occur. In such instances, the systemcomponents may periodically attempt to establish communication and/ormay deposit a message for later retrieval, such as an e-mail or textmessage, to ensure that data exchange(s) occurs when directcommunication is reestablished.

In some instances, consumers lack information on the performance andhealth of their HVAC system, which may lead to unexpected changes inutility bills and/or undesirable delays in performing routine or othermaintenance. Using data from the HVAC system, such as system run time,settings, sensor readings, maintenance schedules, and functional alertsas well as Web-based information such as climate data, daily weatherdata, utility rates, maintenance schedules, manufacturer's bulletins,and the like, an application may assemble periodic reports, on-demandreports, and/or alerts to be delivered to the consumer, for example by amessage center on a server to a smart phone or personal computerapplication or by e-mail to a smart phone or personal computer.

For the purpose of discussion, the examples provided will focusprimarily on delivery to a smart phone application having a touchscreen. However, it will be appreciated that other delivery methods mayemploy different display characteristics and interactions due toconventions associated with the operating environments.

When a user opens the application, a home screen 800 may open, forexample, with a user provided identifier 802 for a default thermostatlocation, a summary of the current state 804 of the selected thermostat,a scrolling list of recent system actions in reverse chronological order806, and selectable options 808, as shown in FIG. 19D. In someembodiments, home screen 800 may include an indication 803 of the numberof recent system actions which have not been reviewed. Touching theidentifier 802 may provide an options screen 810, which may allow theuser to specify a thermostat at a different location 812 which typicallywould return the display to the home screen 800 with the information forthe selected thermostat displayed. In the alternative, the user mayselect from the list provided on options screen 810. Many of thedisplayed options are self-explanatory and/or have been describedpreviously. Of the illustrative examples, the “Messages” option will bediscussed below.

Selecting the Settings icon 814 may direct the application to displayscreen 816, which confirms the location 822 for which the preferenceswill be selected and permits updating various settings pertaining to theselected location. Among those settings may be “NotificationPreferences” which when selected calls up screen 820 shown in FIG. 19E.The illustrated screen 820 provides a toggle for turning status updateson and off, and a list 826 of other possible notification categoriesthat the user may elect to receive and/or suppress. Typically the list826 of possible notification categories will indicate visually whichcategories are currently selected by displayed text, a check box, radiobutton, highlighting, or the like.

When thermostat status updates are turned on, the application displaysscreen 830 which again confirms which location is currently selected at832. Screen 830 also displays a set of selectable categories which maybe selected and indicates visually which categories are currentlyselected by displayed text, a check box, radio button, highlighting, orthe like. An illustrative example of the Thermostat Maintenance statuscategory is shown on screen 840 which includes a toggle for the reminderand a user selectable reminder indicator. In some embodiments, thedisplay may also indicate the time remaining until maintenance issuggested.

With brief reference to FIG. 2, the HVAC controller 18 may be configuredto communicate with a remote device such as the remote device 62. TheHVAC controller 18 may send information to the remote device 62, and theremote device 62 may send information to the HVAC controller 18,sometimes via an intervening remote server. FIG. 19A provides aschematic block illustration of a mobile device 870 that may be used inprogramming an HVAC controller 872 of an HVAC system. In someembodiments, the mobile device 870 is a smartphone or tablet computer,but this is not required. In some embodiments, the mobile device 870 maybe considered as an example of the remote device 62 (FIG. 2).

The mobile device 870 may include a touch screen display 874 that isconfigured to display information and to permit a user to enterinformation. A network connection 878 may be configured to communicatewith a remote server 880 that is itself in operative communication withthe HVAC controller 872. The mobile device 870 includes a controller 876that is in operative communication with the touch screen display 874 andthe network connection 878. The controller 876 is configured to receiveone or more messages related to the operation of the HVAC system via thenetwork connection 878, and to display the one or more messages on thetouch screen display 874.

In some embodiments, one or more messages are displayed in a messagecenter, sometimes in a list format. When so provided, the most recentmessages may be displayed at the top. Alternatively, the most serious orurgent messages may be displayed at the top. In some cases, each messagehas a message description and a time stamp displayed. Optionally, eachmessage has an indicator that indicates if the message has already beenselected and read by the user. In some embodiments, at least one of themessages in the message center are selectable, and once a message isselected, the controller 876 may be configured to display on the touchscreen display 874 display additional information regarding the selectedmessage. In some cases, the messages in the message center can bedeleted by the user. In some embodiments, the controller 876 executes anapplication program, and the message center is implemented by theapplication program.

A variety of messages may be displayed in this manner. For example, insome embodiments, at least one of the messages may be an alert thatalerts the user to a failure of a component of the HVAC system. Inanother example, at least one of the messages may be a suggestion thatsuggests an alternative setting for the HVAC system. In another example,at least one of the messages may be a maintenance reminder for the HVACsystem. In another example, at least one of the messages may relate tousage or usage patterns of the HVAC system.

FIG. 19B provides a schematic block illustration of a mobile device 882that may be used in programming an HVAC controller 872 of an HVACsystem. It will be appreciated that there may be significantsimilarities between the mobile device 882 (FIG. 19B) and the mobiledevice 870 (FIG. 19A). The mobile device 882 may be considered as anexample of the remote device 62 (FIG. 2). In some embodiments, themobile device 882 is a smartphone or tablet computer, but this is notrequired. The mobile device 882 includes a user interface 884 that isconfigured to display information and to permit a user to enterinformation. A network connection 888 is configured to communicate witha remote server 880 that is itself in operative communication with aHVAC controller 872. The mobile device 882 includes a memory 890 forstoring an application program. A controller 886 is in operativecommunication with the user interface 884, the network connection 888and the memory 890.

The application program, stored in the memory 890, may enable a user toremotely program one or more functions of the HVAC controller 872 viathe user interface 884 and to output one or more programmed functions tothe remote server 880 via the network connection 888 when theapplication program is executed by the controller 886. In someembodiments, the application program may be further configured toreceive one or more messages related to the operation of the HVAC systemvia the network connection 888, and to display the one or more messagesvia the user interface 884.

In some embodiments, each message has a message description and a timestamp displayed. In some cases, at least one of the messages includes analert that alerts the user to a failure of a component of the HVACsystem, a suggestion that suggests an alternative setting for the HVACsystem, a maintenance reminder for the HVAC system, or a usage messageindicating the usage of the HVAC system. In some embodiments, the one ormore messages are displayed in a message center, wherein the one or moremessages are displayed in the message center in a list format, with themost recent or most urgent messages are displayed at the top.Optionally, at least one of the messages in the message center areselectable, and once a message is selected, the application program isconfigured to display via the user interface additional informationregarding the selected message.

FIG. 19C is a flow diagram of an illustrative method that may be carriedout using the mobile device 870 (FIG. 19A) or the mobile device 882(FIG. 19B). One or more messages that are related to the operation ofthe HVAC system may be received at the wireless mobile device asgenerally indicated at block 892, where each message includes a messagedescription and a time stamp. As shown at block 894, the one or moremessages may be displayed on a display of the mobile device in a messagecenter. A user may be allowed to select one of the messages displayed inthe message center, and in response, additional information regardingthe selected message may be displayed, as generally indicated at block896. In some embodiments, at least one of the messages includes an alertthat alerts the user to a failure of a component of the HVAC system, asuggestion that suggests an alternative setting for the HVAC system, amaintenance reminder for the HVAC system, or a usage message indicatingthe usage of the HVAC system.

FIG. 19F illustrates an illustrative interaction with a message centerwhich may serve two thermostat locations and which may present messagesin reverse chronological order with messages from multiple locationsmingled and identified by location. As before, the display of homescreen 800 identifies a location for which selection attributes may bealtered and presents options for further user interaction on screen 810a. Those interactions may proceed generally as detailed above. If theMessages option is selected, data presentation may depend upon whetherone or more thermostats are currently configured as shown on screen 850and 850 a of FIG. 19G. Note in FIG. 19G, the messages may include anindicator (bullet) which shows which messages have been reviewed by theuser and those messages which have not been reviewed. Selecting anindividual message from either screen 850, 850 a may display a screensuch as 855, 856, or 857 of FIG. 19H with additional informationregarding the message and one or more options for addressing and/ordismissing the message.

In some embodiments, the message center may assign priorities tomessages and select an appropriate manner of bringing selected messagesto the user's attention. As shown in FIG. 19I, an urgent message may betransmitted through an appropriate network path to a smart phone and/orthermostat and may result in a pop-up message being displayed on thescreen of the smart phone and/or the thermostat. In the case of anurgent message displayed on the screen of the thermostat, additionalcues such as audible alarms and/or flashing of the light ring may serveto attract a user's attention. A pop-up message may suggest an action orallow the message to be dismissed (see FIG. 19I). Other displayconfigurations such as those of FIGS. 19J, 19K and 19L may also beemployed. As shown in FIG. 19L, an initial screen may be presented thatprovides access to multiple messages 862 and/or a linked screen toprovide additional details 864 of the messages.

Other types of messages that may be displayed to a user via the messagecenter by the application program code may include, but are not limitedto, messages related to alerts, maintenance, tips/advice, promotions,and usage. An alert message may indicate that something is notfunctioning properly, and may require immediate attention or some actionto be taken by the user. For example, in some cases, an alert messagemay indicate that the HVAC controller has become disconnected from aserver or the local wireless area network. In other cases, an alertmessage may warn of an impending dead battery or may alert the user toan unsafe temperature. A maintenance message may remind the user of aneeded or recommended filter change based on a timer or a system load ormay remind the user to change the battery. The maintenance message mayinclude the part number or other description of the recommended filteror other part, so that the user can pick one up when convenient.

A tips/advice type of message may provide a user with information and/orrecommend one or more actions that a user may take to improve theperformance and/or efficiency of the HVAC system, and/or improve theircomfort level. In one example, a tips/advice type of message may informthe user that the system performance has degraded and may recommend tothe user to have the air ducts cleaned. In another example, thetips/advice message may recommend a schedule based on the user's manualsetpoint changes. Alternatively, or in addition, the message may includea recommendation to the user to use the geofencing feature (describedelse wherein herein) if the user's manual setback changes do not followa clear pattern. In yet another example, the message may display arecommendation to open one or more windows based on the outdoortemperature matching the desired indoor temperature setpoint, sometimestaking into account humidity, air quality and/or other factors insideand/or outside of the house.

A promotions message may include information about additional solutions,products, or services that a certified contractor currently offers thatmay be of interest to the user, sometimes based on actual historicalperformance data of the HVAC system and/or user interactions with theHVAC system. For example, if the humidity of the inside space is low inthe winter months, a promotions message may be provided recommending theinstallation of a humidifier to increase the comfort of the user.

Usage messages may contain information about automated or manual systemstate changes. For example, a usage message may inform the user that theHVAC controller has entered a “Home” mode or setting because a user hasactivated the one-touch action labeled “Home” or because a user hascrossed a proximity boundary indicating that they have arrived or areabout to arrive at home. In another example, a usage message may informthe user that the HVAC controller has entered the “Home” mode accordingto a programmed schedule.

In some cases, the application program code may be programmed to displayor transmit an informative message to a user based on the user'sbehavior or their interactions or frequency of interactions with certainfeatures of the HVAC controller and/or HVAC system. For example, theapplication program code executed by the remote device 62 may beprogrammed to periodically poll the HVAC controller for selectedinformation about the use of specific features such as, for example, anauto changeover feature or geofence feature. If the data received fromthe HVAC controller by the application program code indicates that theauto changeover feature has never been used by the user, the applicationprogram code may display a message to the user containing usefulinformation about the auto changeover feature and how and when to usethe auto changeover feature. Similarly, if the data received by theapplication program code from the HVAC controller indicates that theuser is not using a geofence (e.g. proximity boundary) to triggeractivation of an “away” setting or an “at home” setting by the HVACcontroller, the application program code may display or transmit amessage to the user about geofencing, how to activate a geofence, and/orhow to select a geofence appropriate for their lifestyle. These are justsome examples.

The application program code (or app) running on the remote device (e.g.smartphone, tablet, laptop, etc.) may be downloaded from an external Webservice. In some cases, the application program code may be downloadedfrom Apple Inc.'s ITUNES™ or Google Play. In other cases, theapplication program code may be available for download from a webservice that is provided to support use of the HVAC controller 18. Anexample of such a web service is Honeywell's TOTAL CONNECT™ web service.The application program code may be stored in the memory of a user'sremote device 62 and may contain a set of instructions for execution bya processor related to the installation, configuration, connection, andpersonalization of the HVAC controller 18. The user's remote device 62may be any one of the remote devices described herein. In some cases,the application code may be stored in the memory of a user's smartphoneor tablet computer for execution by the smartphone or tablet computer'sprocessor to carry out various functions to facilitate the installation,configuration, and setup of the newly installed HVAC controller 18. Inother cases, the application program code may be stored in the memory ofa user's personal or desktop computer for execution by the computer'sprocessor to carry out various functions that may facilitate theinstallation, configuration, connection and personalization of the HVACcontroller 18. Additionally, once the HVAC controller 18 is successfullyinstalled and configured to control the HVAC system 4, the applicationprogram code may also facilitate control of the HVAC controller 18 froma remote location other than at the user interface provided at the HVACcontroller 18.

In some cases, the application program code may provide a uniforminstallation setup interface across multiple platforms (e.g. HVACcontroller 18, remote device, web service) for accessing and interactingwith the HVAC controller 18. The application code may utilize a simplecommunication protocol that allows the application program code to beexecuted by multiple platforms (e.g. web, HVAC controller, andsmartphone/tablet application). For example, the web service and theHVAC controller may utilize the same installation setup logic byexecuting the same code from the same code base. In some cases, theinstallation setup code may be compiled for use by the HVAC controller18, a web service, and/or an application program code. For example, insome cases, for example, the web service, the application program code,and the HVAC controller each contain the same installation setupdefinitions. However, in some cases, the application program codeexecuted by the user's remote device may be programmed to determine howto display each feature of the installation setup to the user via thedevice's user interface. This may permit the application program codeexecuted by a user's remote device (e.g. smartphone or tablet) toconnect to either the web service associated with the HVAC controller 18or to the HVAC controller 18 directly. This feature also may permit auser to interact with the HVAC controller 18 across multiple platformswith minimal differences in the installation setup process and theoverall user experience.

Turning now to FIG. 20A, which is a schematic block illustration of amobile device 900 that may be used in programming an HVAC controller 902of an HVAC system. In some cases, the HVAC controller 902 includes awireless interface 914. In some embodiments, the mobile device 900 is asmartphone or tablet computer, but this is not required. It will beappreciated that in many instances, the mobile device 900 is similar tothose described with respect to previous drawings and may be consideredas an example of the remote device 62 (FIG. 2).

The mobile device 900 may include a touch screen display 904 that isconfigured to display information and to permit a user to enterinformation. A wireless port 906 is configured to communicate with aremote download server 908 that is itself in operative communicationwith the HVAC controller 902. The mobile device 900 includes acontroller 910 that is in operative communication with the touch screendisplay 904 and the wireless port 906. The controller 910 is configuredto establish communication with the remote download server 908 via thewireless port 906 and to download an application program code from theremote download server 908. The mobile device 900 includes a memory 912that is configured to store the application program code once downloadedfrom the remote download server 908.

In some embodiments, the controller 910 is configured to establish adirect wireless connection between the wireless port 906 of the mobiledevice 900 and the wireless interface 914 of the HVAC controller 902,with the HVAC controller 902 functioning as an access point. In somecases, the controller 910 may be configured to execute the applicationprogram code, which provides one or more configuration screens on thetouch screen display 904 of the mobile device 900 to enable the user toconfigure the HVAC controller 902 via one or more configurationparameters. The controller 910 may be further configured to upload theone or more configuration parameters to the HVAC controller 902 via thedirect wireless connection between the wireless port 906 of the mobiledevice 900 and the wireless interface 914 of the HVAC controller 902.

In some embodiments, after the controller 910 uploads the one or moreconfiguration parameters to the HVAC controller 902 via the directwireless connection between the wireless port 906 of the mobile device900 and the wireless interface 914 of the HVAC controller 902, themobile device 900 is configured to drop the direct wireless connectionbetween the wireless port 906 of the mobile device 900 and the wirelessinterface of the HVAC controller 902. In other words, the directwireless connection is only used for initial setup and configuration ofthe HVAC controller 902. In some cases, after the mobile device 900drops the direct wireless connection between the wireless port 906 ofthe mobile device 900 and the wireless interface 914 of the HVACcontroller 902, the mobile device 900 establishes communication with aremote monitoring server 908, and wherein the HVAC controller 902 alsoestablishes communication with the remote monitoring server 908. In someembodiments, the remote monitoring server 908 is the same server as theremote download server 908, but this is not required. In some cases, oneor more of the configuration parameters provided by the mobile device900 to the HVAC controller 902 include communication parameters that arenecessary for setting up communication between the HVAC controller 902and the remote monitoring server 908, sometimes via a home wirelessnetwork 916. In some cases, one or more of the configuration parametersmay include the home WiFi network name (Service Set Identifier—SSID)and/or password. In some cases, one or more of the configurationparameters may include an address, ID and/or password for connecting toa remote monitoring server 908.

In some embodiments, the application program code is also configured todisplay one or more install screens, wherein the one or more installscreens include information on removing an old thermostat (notillustrated) as part of a process to install the HVAC controller 902. Insome cases, the application program code may be configured to alsodisplay one or more install screens, wherein the one or more installscreens include information on wiring the HVAC controller 902 as part ofa process to install the HVAC controller 902. FIGS. 29-41, for example,show illustrative install screens.

In some instances, the one or more configuration screens include ascreen soliciting the user to input information regarding equipmentconfiguration. In some cases, the one or more configuration screensinclude a screen soliciting the user to input information regardingcomfort preferences.

FIG. 20B is a schematic block diagram of an illustrative HVAC controller920 that is configured to be at least partially set up or configuredusing an application program code running on a mobile device 922. Themobile device 922 may, for example, be a smartphone or a tablet. In somecases, the mobile device 922 may be the mobile device 900 described withrespect to FIG. 20A, but this is not required, and may be considered asan example of the remote device 62 (FIG. 2).

The illustrative HVAC controller 920 includes a user interface 924 thatis configured to display information to be viewed by a user and toaccept inputs from the user and is optionally a touch screen. Acontroller 926 is operably coupled to the user interface 924 and an onboard wireless interface 930 is operably coupled to the controller 926.The controller 926 is configured to establish on board wirelessinterface 930 as an access point for creating a direct communicationpath with the wireless mobile device 922 for initially configuring theHVAC controller 920, including for initially configuring the HVACcontroller 920 for communication with a wireless gateway (e.g. in-homewireless router). This may include, for example, a Service SetIdentifier (SSID) of the wireless gateway and/or password. Thecontroller 926 is configured to accept the configuration informationfrom the mobile device 922 via the direct communication path establishedbetween the on board wireless interface 930 and the wireless mobiledevice 922.

It is contemplated that the direct communication path may be a WiFiconnection. However, in some instances, the direct communication pathmay be any suitable wireless connection including, but not limited to,cellular communication, ZigBee, REDLINK™, Bluetooth, WiFi, IrDA,dedicated short range communication (DSRC), EnOcean, and/or any othersuitable common or proprietary wireless protocol. In some instances, thedirect communication path may be a wired communication path.

In some embodiments, the controller 926 may be configured to display,via the user interface 924, a screen instructing a user that the HVACcontroller 920 is wirelessly coupled to the mobile device 922, and toutilize the mobile device 922 to configure the HVAC controller 920. Thecontroller 926 may also be configured to display, via the user interface924, a screen instructing a user to utilize the mobile device 922 toinitially configure the HVAC controller 920 for communication with awireless gateway (e.g. in-home wireless router).

In some cases, while displaying screens to help instruct the user withinstallation, the HVAC controller 920 may receive a type of HVACequipment as configuration information from the user via the wirelessmobile device 922 and the direct communication path. In someembodiments, the HVAC controller 920 may receive comfort settings asconfiguration information from the wireless mobile device 922 via thedirect communication path.

It will be appreciated that the application program code referencedabove may be stored on the remote server 908. In some embodiments, theapplication program code may be manifested in a computer readable mediumthat contains program instructions for facilitating a user of a wirelessmobile device in configuring a wireless HVAC controller. After downloadto a wireless mobile device, execution of the program instructions byone or more processors of the wireless mobile device may cause thewireless mobile device to carry out a number of illustrative steps, suchas shown in FIG. 20C.

With reference to FIG. 20C, and starting at block 940, one or morescreens may be provided on a display of the wireless mobile device, suchas the mobile device 922, to accept configuration information from theuser. Configuration information is accepted from the user of thewireless mobile device, as shown at block 942. A direct communicationpath is established between the wireless mobile device 922 and the HVACcontroller 920 (FIG. 20B) with the wireless HVAC controller 920 or thewireless mobile device 922 functioning as an access point, as generallyseen at block 944. The accepted configuration information is transmittedfrom the wireless mobile device 922 to the HVAC controller 920 via thedirect communication path between the wireless mobile device 922 and theHVAC controller 920, as indicated at block 946. The direct communicationpath between the wireless mobile device 922 and the HVAC controller 920is then terminated, as indicated at block 948. In some embodiments, theaccepted configuration information may include configuration informationfor configuring communication between the wireless HVAC controller 920and a local wireless gateway. In some cases, the accepted configurationinformation may include HVAC equipment configuration and/or comfortsettings.

FIGS. 20D-27 show several illustrative examples of screens that may bedisplayed on the display of the user interface of a user's mobile devicein connection with downloading and installing an application programcode for setting up an HVAC controller 18 according to an installationsetup process which may include installing, configuring, connecting theHVAC controller 18 to a web service using a network connection, andpersonalizing the HVAC controller 18.

FIGS. 20D and 20E each show illustrative screens 1000A, 1000B that maybe displayed to a user via the display of the user interface of theuser's remote device 62 (e.g. smartphone or tablet) when interactingwith an external web service to initially obtain and open theapplication program code. FIG. 20D shows an initial screen 1000A thatmay be displayed to the user via the user interface of the user's remotedevice after the user has successfully located the application programcode in the external web service's application program code databaseusing an appropriate search function. As can be seen in FIG. 20D, screen1000A includes a user prompt 1004 that prompts the user to install (i.e.download) the application program code. Screen 1000B shown in FIG. 20Emay be displayed to a user via the user interface of the user's remotedevice 62 after successful installation of the application program codeon the user's remote device.

As can be seen in FIG. 20E, screen 1000B includes a button 1006 labeled“open” that may prompt the user to open the application program code andinitiate execution of the application program code by the user's remotedevice 62. Selection of the button 1006 labeled “open” by a user maycause the application program code to display a login prompt screen 1010to the user via the user interface of the user's remote device 62, asshown in FIG. 21. Login prompt screen 1010 may include a first entryfield 1012 for accepting a username from a user and a second entry field1014 for accepting a password associated with the user name entered inthe first entry field 1012. Upon entering an appropriate username andpassword combination, the user may then select the button 1016 labeledlogin, which will cause the application program code to display one ormore screens associated with the user's account. In some cases, screen1010 may also include an additional option 1022 labeled “forgot mypassword” that, when selected by a user, may initiate a sequence ofscreens that may facilitate retrieval of a user's password.

Alternatively, if the user has not already established a user account,the user may instead select the option 1020 labeled “create account”which will cause the application program code to display one or morescreens for facilitating the creation of a user account. The one or morescreens may guide the user through setting up and activating their useraccount. In some cases, the application program code may cause theuser's remote device to transmit the user's account information to a webservice hosted by a web server that is associated with the HVACcontroller 18. An example of such a web service is Honeywell's TOTALCONNECT Web Service™. The user's account information may be stored in adatabase in the server memory and may be accessed by the user via theapplication program code executed by the user's remote device (e.g.smartphone or tablet). This feature may allow a user to access and makechanges to their account and/or the HVAC controller 18 from a variety ofremote locations on a number of different computing platforms (e.g.smartphone, tablet, personal computer, internet, HVAC controller 18,etc.). For example, the user may begin configuring their HVAC controller18 using the application program code executed by their smartphone, andfinish configuring their HVAC controller 18 through a web site hosted bythe web service associated with the HVAC controller 18. This is just oneexample.

FIG. 22 provides an example of a screen 1030 related to the creation ofa user account that may be displayed to the user via the user interfaceof the user's remote device 62. As shown in FIG. 22, screen 1030 mayinclude a first user prompt 1034 that may prompt a user to enterselected details for creation of their account in the appropriate textentry fields 1036 a-1036 c. Each of the text entry fields 1036 a-1036 cmay be labeled with an appropriate label 1038 a-1038 c identifying therequested information. For example, as shown in FIG. 22, text entryfields 1036 a-1036 c are labeled “first name”, “last name” and “emailaddress” prompting a user to provide their first and last name and avalid email address in the appropriate entry fields 1036 a-1036 c. Itwill be generally understood, that fewer or additional fields may beprovided prompting the user to provide fewer or additional details, asappropriate. Additionally, screen 1030 may include a second user prompt1038 that may prompt a user to create a password using the appropriatetext entry fields 1040 a, 1040 b. Each of the text entry fields 1040 a,1040 b may be labeled with an appropriate label 1042 a, 1042 b promptingthe user to enter and verify a newly created password.

Selection of button 1044 labeled “create account” provided on screen1030 may cause the application program code to display a next screen1050 related to the creation of the user's account via the userinterface of the user's remote device 62. FIG. 23 provides an example ofa screen 1050 that may be displayed in response to the user havingselected the button 1044 labeled “create account” provided on screen1030. Screen 1050 relates to activation of the user's newly createdaccount. As shown in FIG. 23, screen 1050 can include a user prompt 1052that may prompt a user to check their email account associated with theemail address provided during creation of their user account for aninstructional email and follow the instructions provided in the email.In some cases, the email may be transmitted by the application programcode executed by the user's remote device. If, after having checkedtheir email account, the user has not received the instructional email,the user may select button 1054 labeled “resend” prompting theapplication program code to send another instructional email to theemail account associated with the user's account.

Screen 1060, shown in FIG. 24, may be displayed to the user via the userinterface of the user's remote device upon successful activation of auser's account. Screen 1060 may include a user message 1062 confirmingsuccessful activation of the user's account. Additionally, in somecases, screen 1060 may include a prompt or link 1064 that, when selectedby the user, may cause the application program code to complete thelaunch of the application program code for setting up the HVACcontroller 18.

FIG. 25 provides an example of a screen 1080 that may be displayed uponselection of prompt or link 1064 displayed on screen 1060 (FIG. 24) forlaunching the application program code. Screen 1080 may include a firstfield 1082 identifying the current status of a current setup processesthat is in progress and, in some cases, may include an adjacent checkbox1084 that, when selected by a user, may cause the current setup processto be cancelled. In some cases, selection of the checkbox 1084 by a usermay cause a screen 1086, shown in FIG. 26, to be displayed to the userincluding a user query 1088 that asks the user to confirm cancellationor deletion of the previous HVAC controller setup process. In somecases, the screen 1086 may be provided as a pop-up or floating windowthat may be displayed over screen 1080. In other cases, screen 1086 maybe displayed as a separate screen. Selection of either button 1090labeled “cancel” or button 1092 labeled “delete” may cause theapplication code to display the previous screen 1080.

In addition, as shown in FIG. 25, screen 1080 may also include a secondfield 1094 that may include an adjacent user prompt 1096 that may promptthe user to identify a new HVAC device to be setup using the applicationprogram code executed by the user's remote device 62 as will bedescribed in greater detail below.

Referring now back to FIG. 21, in some cases, the user may have alreadycreated and activated a user account in which case, the user may enterthe required user name and password into the appropriate text entryfields 1012, 1014 and select button 1016 labeled “login” to login intothe user account via the application program code executed by theirremote device 62. In such cases, if the user has already begun the setupprocess for installing and/or configuring the HVAC controller 18, theapplication program code may display a screen 1070 that queries the userabout resuming the already previously initiated setup of the HVACcontroller 18. For example, as shown in FIG. 27, screen 1070 may includea user prompt 1072 that questions the user “Resume setup?” In somecases, screen 1070 may include additional information 1074 such as, forexample, the last identified step in the setup process that waspreviously completed by the user during setup of the HVAC controller 18.In addition, screen 1070 may include a first option 1076 a labeled“start over” or “no” and a second option 1076 b labeled “continue setup”or “yes” that may be selected by the user to either cancel the previoussetup process and start over or to continue the setup process from thelast identified step in the setup as provided in the additionalinformation 1074 displayed on screen 1070. Selection of second option1076 b may cause the application program code to resume the setupprocess at the last identified step.

The installation setup process may be divided into at least fourdifferent chapters or phases. In some cases, the application programmode may be configured to display a screen to a user that introducesand/or identifies the current phase of the installation setup process.FIG. 28 provides an example of such a screen 1100. As shown in FIG. 28,screen 1100 includes icons 1104 a-1104 d identifying each of the fourphases of the setup process, which in this example are “install”,“configure”, “connect” and “personalize”. In addition, the icon 1104 aidentifying the current phase of the setup process may be grayed-out,bolded, or otherwise highlighted to visually indicate to the user thatit is the current phase of the setup process. Once that phase of thesetup process is complete the icon 1104 a may include a dot or acheckmark in a corner of the icon 1104 to indicate that the phase hasbeen completed. The user may initiate the setup process by selecting thebutton 1106 labeled “start setup” provided on screen 1100.

Upon initialization of the installation setup process, the applicationprogram code may be configured to display one or more screens to theuser via the user interface of the user's remote device 62 that mayguide a user through removal of an existing thermostat. In some cases,the one or more screens may be displayed in a pre-determined sequence ofscreens having a predefined order. The user may move backward andforward within the predetermined sequence of screens by the selection ofappropriate buttons provided on the screen for this purpose. In othercases, the user may navigate backward and forward within thepredetermined sequence of screens by dragging their finger from side toside across the display of their remote device 62 or through some othergesture. These are just some examples.

FIGS. 29-41 show several illustrative screens that may be displayed tothe user via the user interface of the user's remote device 62 by theapplication program code, as described herein, that may guide the userthrough the removal of an existing HVAC controller.

FIG. 29 shows an example of a first screen 1110 that may be displayed inthe sequence of screens related to the removal of an existing HVACcontroller. In some cases, as discussed herein, the sequence of screensmay be a predetermined sequence of screens having a predetermineddisplay order, although this is not required. As shown in FIG. 29,screen 1100 includes a first label 1112 that identifies the currentphase of the setup process. A status bar indicator 1114 may also beprovided that shows the status of the installation phase. In addition,screen 1110 may include a brief text string 1116 identifying the currentstep of the installation phase. For example, as shown in FIG. 29, thebrief text string 1116 identifies the current step as “Removing OldThermostat.” A user message 1118 may also be displayed on screen 1110.The user message 1118 may contain information that may aid the user inthe current phase of the setup process. In some cases, the user message1118 may provide a brief explanation of the current step of theinstallation phase identified by the brief text string 1116. Screen 1110may also provide an overview 1120 of the current phase of the setupprocess. In some cases, the overview 1120 may list the individual steps1121 a-1121 e of the current phase of the installation process.Selection of any of the individual steps 1121 a-1121 e provided in theoverview 1120 may cause the application program code to jump to thatstep in the current phase of the setup process. An information icon 1122may be provided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the installation phase, sometimesincluding a video demonstration. Additionally, in some cases, screen1110 may include a button 1124 labeled “skip” or “skip install” that maybe selected by a user if the use has previously removed an existingthermostat and/or previously wired the new HVAC controller 18. Selectionof the button 1126 labeled “start removal” or “next’ may cause theapplication program code to display the next screen in the sequence ofscreens related to the removal of an existing HVAC controller.

FIG. 30 shows an example of another screen 1130 that may be displayed aspart of the sequence of screens related to the removal of an existingHVAC controller. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 30, screen 1130 includes afirst label 1132 that identifies the current phase of the setup process.A status bar indicator 1134 may also be provided that shows the statusof the installation phase. In addition, screen 1130 may include a brieftext string 1136 identifying the current step of the installation phase.For example, as shown in FIG. 30, the brief text string 1136 identifiesthe current step as “Switch Power Off.”A user message 1138 may also bedisplayed on screen 1130. The user message 1138 may contain informationthat may aid the user in the current phase of the process. In somecases, the user message 1138 may provide a brief explanation of thecurrent step of the installation phase identified by the brief textstring 1136. Screen 1130 may also provide a diagram 1140 that provides avisual demonstration to the user how the power may be turned off. Aninformation icon 1142 may be provided that, when selected by a user, maycause the application program code to display an additional screenincluding detailed information about the current step of theinstallation phase, sometimes including a video demonstration. Selectionof the button 1146 labeled “start removal” or “next’ may cause theapplication program code to display the next screen in the sequence ofscreens related to the removal of an existing HVAC controller.

FIG. 31 shows an example of another screen 1150 that may be displayed aspart of the sequence of screens related to the removal of an existingHVAC controller. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 31, screen 1150 includes afirst label 1152 that identifies the current phase of the setup process.A status bar indicator 1154 may also be provided that shows the statusof the installation phase. In addition, screen 1150 may include a brieftext string 1156 identifying the current step of the installation phase.For example, as shown in FIG. 31, the brief text string 1156 identifiesthe current step as “Verifying Power Off.” A user message 1158 may alsobe displayed on screen 1150. The user message 1158 may containinformation that may aid the user in the current phase of the process.In some cases, the user message 1158 may provide a brief explanation ofthe current step of the installation phase identified by the brief textstring 1156. An information icon 1162 may be provided that, whenselected by a user, may cause the application program code to display anadditional screen including detailed information about the current stepof the installation phase, sometimes including a video demonstration.Selection of the button 1166 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to the removal of an existing HVAC controller.

FIG. 32 shows an example of another screen 1170 that may be displayed aspart of the sequence of screens related to the removal of an existingHVAC controller. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 32, screen 1170 includes afirst label 1172 that identifies the current phase of the setup process.A status bar indicator 1174 may also be provided that shows the statusof the installation phase. In addition, screen 1170 may include a brieftext string 1176 identifying the current step of the installation phase.For example, as shown in FIG. 32, the brief text string 1176 identifiesthe current step as “Remove Panel.” A user message 1178 may also bedisplayed on screen 1170. The user message 1178 may contain informationthat may aid the user in the current phase of the process. In somecases, the user message 1178 may provide a brief explanation of thecurrent step of the installation phase identified by the brief textstring 1176. In some cases, as shown in FIG. 32, screen 1170 may includea user prompt 1180 that may prompt or instruct the user to take apicture of the panel before it is removed. The user may utilize thecamera on their remote device 62 (if present) or utilize a separatecamera. In some cases, the user may utilize the current method providedby the operating system of their remote device 62 to integrate thepicture of the panel that the user just captured using the remotedevice's camera into the application program code. This is just oneexample. Additional steps for integrating the photo of the panel intothe application program code may be necessary if the photo was capturedusing a device (e.g. digital camera) separate from the remote device 62.After successful integration of the captured photo into the applicationprogram code, the application program code may display the capture photo1182 in a region on screen 1170, as shown in FIG. 32. An informationicon 1184 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the installation phase,sometimes including a video demonstration. Selection of the button 1186labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to the removal of anexisting HVAC controller.

FIG. 33 shows an example of another screen 1190 that may be displayed aspart of the sequence of screens related to the removal of an existingHVAC controller. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 33, screen 1190 includes afirst label 1192 that identifies the current phase of the setup process.A status bar indicator 1194 may also be provided that shows the statusof the installation phase. In addition, screen 1190 may include a brieftext string 1196 identifying the current step of the installation phase.For example, as shown in FIG. 33, the brief text string 1196 identifiesthe current step as “Voltage Check.” A user message or user query 1198may also be displayed on screen 1190. As shown in FIG. 33, the usermessage or query 1198 may query the user about their current voltage.For example, the user query 1198 asks the user “Do you have thick blackwires, 110 voltage or higher? In some cases, screen 1190 may provide afirst selectable option 1202 labeled “yes” and a second selectableoption 1204 labeled “no” for respond to the query presented by the usermessage 1198. Screen 1190 may also provide a diagram 1206 of anillustrative wiring configuration that may assist a user in identifyingif their existing voltage is 110 voltage or higher. In addition, aninformation icon 1210 may be provided that, when selected by a user, maycause the application program code to display an additional screenincluding detailed information about the current step of theinstallation phase, sometimes including a video demonstration. Selectionof the button 1212 labeled “next’ may cause the application program codeto display the next screen in the sequence of screens related to theremoval of an existing HVAC controller.

In some cases, selection of the option 1202 labeled “yes” in response tothe user query 1198 indicates that the user's voltage is 110 volts orhigher. In addition, selection of the option 1202 labeled “yes” maycause the application program code to display a screen 1220, shown inFIG. 34, which informs the user that their current wiring isincompatible with the new HVAC controller, if appropriate. As shown inFIG. 34, screen 1220 includes a first label 1222 that identifies thecurrent phase of the setup process. A status bar indicator 1224 may alsobe provided that shows the status of the installation phase. Inaddition, screen 1220 may include a brief text string 1226 identifyingthe current step of the installation phase. For example, as shown inFIG. 34, the brief text string 1226 may indicate to the user that thevoltage is incompatible. A user message 1228 may also be displayed onscreen 1220. The user message 1228 may contain information that may aidthe user in the current phase of the process. In some cases, the usermessage 1228 may provide a brief explanation of the current step of theinstallation phase identified by the brief text string 1226 and, in somecases, may instruct the user to take a recommended action. Aninformation icon 1232 may be provided that, when selected by a user, maycause the application program code to display an additional screenincluding detailed information about the current step of theinstallation phase, sometimes including a video message.

FIG. 35 shows an example of a screen 1240 that may be displayed uponselection of the information icon 1232 displayed on screen 1220 shown inFIG. 34. Screen 1240 may include one or more selectable options 1242a-1242 d that, when selected by a user, may cause the applicationprogram code to perform a selected function. For example, option 1242 a,when selected by a user, may cause the application program code toaccess and/or display a set of frequently asked questions (FAQs) andtheir answers so that they may be viewed by the user via the userinterface of the remote device 62. Selection of option 1242 b may causethe application program code to initiate a telephone call to customerservice and/or technical support. Selection of option 1242 c may causethe application program code to access and/or display an instructionalsupport video. In some cases, the application program code may accessthe instructional video using the web browser supported by the user'sremote device 62, but this is not required. Selection of option 1242 dlabeled “find a contractor” may cause the application program code todisplay another screen 1250, shown in FIG. 36, that may query the userabout using location based services to identify a local contractor orthat may include a user prompt that may prompt a user to enter their zipcode. The application program code may utilize location based servicesor the zip code provided by the user to identify a local qualifiedcontractor. In some cases, the application program code may display acontractor's contact information to the user via the user interface ofthe remote device 62. In other cases, the application program code maytransmit the contractor information to the user via an email message orSMS text message.

Referring back to FIG. 33, selection of the button 1212 labeled “next’may cause the application program code to display the next screen in thesequence of screens related to the removal of an existing HVACcontroller. FIG. 37 shows an example of a next screen 1260 that may bedisplayed as part of the sequence of screens related to the removal ofan existing HVAC controller. In some cases, as discussed herein, thesequence of screens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 37, screen 1260 includes afirst label 1262 that identifies the current phase of the setup process.A status bar indicator 1264 may also be provided that shows the statusof the installation phase. In addition, screen 1260 may include a brieftext string 1266 identifying the current step of the installation phase.For example, as shown in FIG. 37, the brief text string 1266 identifiesthe current step as “Remove Current Wiring and Disconnect.” A usermessage 1268 may also be displayed on screen 1260. The user message 1268may contain information that may aid the user in the current phase ofthe process. In some cases, the user message 1268 may provide a briefexplanation of the current step of the installation phase identified bythe brief text string 1266. Additionally, in some cases the user messagemay instruct the user to take one or more selected actions consistentwith the current step of the installation phase. In some cases, as shownin FIG. 37, screen 1260 may include an icon or button 1270 that, whenselected by a user, may cause the previously captured photo of the panelwiring to be displayed to the user via the user interface of the remotedevice 62. The photo may be displayed in a separate screen or in apop-up or floating window that may be provided over the screen 1260. Inaddition, screen 1260 may include a list 1272 of at least two wiringterminals labels 1274, wherein each wiring terminal label is availablefor selection by user. Screen 1260 may also include a scroll bar 1276that, when manipulated by a user, may cause additional wiring terminallabels 1274 available for selection by a user to be displayed by screen1260. The user may utilize the previously captured photo to aid in theselection of the appropriate wiring terminal labels 1274 consistent witha previous wiring configuration. It will be generally recognized bythose of skill in the art that the wiring terminal labels “R”, “C”, “W”,“Y”, and “G” cover a vast majority of known wiring configurationsrelated to existing HVAC controllers. An information icon 1278 may beprovided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the installation phase, sometimesincluding a video demonstration.

FIG. 38 shows another view of screen 1260 after at least one wiringterminal label 1274 has been selected by a user. As shown in FIG. 38,wiring terminal labels 1274 labeled “R”, “Y”, “W”, and “G” have beenselected by the user. In some cases, a checkbox (FIG. 38) or radiobutton may be utilized to indicate selection by a user. However, it willbe generally recognized that other methods used to highlight a selectedoption or options may be employed. Additionally, in some cases, theapplication program code may cause a default color 1284 (e.g. red,white, yellow and green) to be displayed adjacent the selected wiringterminal label(s) 1274. Selection of the button 1282 labeled “next’ maycause the application program code to accept the legacy wiringconfiguration indicated by the user and/or display the next screen inthe sequence of screens related to the removal of an existing HVACcontroller.

In some cases, if the existing wiring configuration indicated by theuser through screen 1260 is an uncommon wiring configuration, theapplication program code may cause a pop-up or floating window 1284 tobe displayed over screen 1260, as shown in FIG. 39. In some cases, theinformation displayed in pop-up window 1284, shown in FIG. 39, may alsobe displayed in a separate screen if desired. As shown in FIG. 39,window 1284 may include a user message 1286 that indicates to the userthat the wiring configuration previously entered by the user via screen1260 is uncommon. In addition, window 1284 may include a user prompt1288 that may instruct the user to visit a website that may provideadditional, detailed instructions for setting up the new HVAC controllerbased on the uncommon wiring configuration indicated by a user. In somecases, window 1284 may include a hyperlink 1290 that, when selected bythe user, may cause the application program code the launch a webbrowser provided by the user's remote device 62 and cause the website orweb page containing the additional wiring configuration information tobe displayed to the user via the user interface of the remote device 62.Alternatively, or in addition, the user may enter the web addressincluded in the hyperlink into the web browser of a separate device andview the information on the separate device. Selection of the button1292 labeled “update wiring” may cause the previous screen 1260 to bedisplayed such that a user may update and/or make changes to theexisting wiring configuration based on the additional informationprovided by the website or web page. Selection of the button 1294labeled “continue” or “next” may cause the application program code todisplay the next screen in the sequence of screens related to removal ofthe existing thermostat.

FIG. 40 shows an example of another screen 1300 that may be displayed aspart of the sequence of screens related to the removal of an existingHVAC controller. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 40, screen 1300 includes afirst label 1302 that identifies the current phase of the setup process.A status bar indicator 1304 may also be provided that shows the statusof the installation phase. In addition, screen 1300 may include a brieftext string 1306 identifying the current step of the installation phase.For example, as shown in FIG. 40, the brief text string 1306 identifiesthe current step as “Remove Wall Plate.”A user message 1308 may also bedisplayed on screen 1300. The user message 1308 may contain informationthat may aid the user in the current phase of the process. In somecases, the user message 1308 may provide a brief explanation of thecurrent step of the installation phase identified by the brief textstring 1306. An information icon 1310 may be provided that, whenselected by a user, may cause the application program code to display anadditional screen including detailed information about the current stepof the installation phase, sometimes including a video demonstration.Selection of the button 1312 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to the removal of an existing HVAC controller.

FIG. 41 shows an example of another screen 1320 that may be displayed aspart of the sequence of screens related to the removal of an existingHVAC controller. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 41, screen 1320 includes afirst label 1322 that identifies the current phase of the setup process.A status bar indicator 1324 may also be provided that shows the statusof the installation phase. In addition, screen 1320 may include a brieftext string 1326 identifying the current step of the installation phase.For example, as shown in FIG. 41, the brief text string 1326 identifiesthe current step as “Old Thermostat Removed!” A user message 1328 mayalso be displayed on screen 1320. In some cases, the user message 1328may provide a brief explanation of the current step of the installationphase identified by the brief text string 1326. An information icon 1330may be provided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the installation phase, sometimesincluding a video message. Selection of the button 1312 labeled “next”or “start install” may cause the application program code to display afirst screen in a sequence of screens related to the installation of thereplacement HVAC controller 18.

FIGS. 42-49 show several illustrative screens that may be displayed tothe user via the user interface of the user's remote device 62 by theapplication program code, as described herein, that may guide the userthrough installation of a new HVAC controller 18. FIG. 42 shows anexample of a first screen 1340 that may be displayed in the sequence ofscreens related to the installation of a replacement HVAC controller 18.In some cases, as discussed herein, the sequence of screens may be apredetermined sequence of screens having a predetermined display order.The user may move backward and forward within the predetermined sequenceof screens by the selection of appropriate buttons provided on thescreen for this purpose. In other cases, the user may scroll backwardand forward within the predetermined sequence of screens by draggingtheir finger from side to side across the display of their remote device62 or through some other gesture. These are just some examples.

As shown in FIG. 42, screen 1340 includes a first label 1342 thatidentifies the current phase of the setup process. A status barindicator 1344 may also be provided that shows the status of theinstallation phase. In addition, screen 1340 may include a brief textstring 1346 identifying the current step of the installation phase. Forexample, as shown in FIG. 42, the brief text string 1346 identifies thecurrent step as “Installing Your New Thermostat.” A user message 1348may also be displayed on screen 1340. The user message may containinformation that may aid the user in the current phase of the process.In some cases, the user message 1348 may provide a brief explanation ofthe current step of the installation phase identified by the brief textstring 1346. Screen 1340 may also provide an overview 1350 of thecurrent phase of the setup process. The overview 1350 may listindividual steps 1351 a-1351 e of the current phase of the installationphase. Selection of any of the individual steps 1351 a-1351 e providedin the overview 1350 may cause the application program to jump to thatstep in the setup process. An information icon 1352 may be providedthat, when selected by a user, may cause the application program code todisplay an additional screen including detailed information about thecurrent step of the installation phase, sometimes including a videodemonstration. Selection of the button 1354 labeled “next’ may cause theapplication program code to display the next screen in the sequence ofscreens related to the installation of the new HVAC controller 18.

In some cases, if the wiring configuration provided by the user throughscreen 1260 (FIGS. 37 and 38) indicates that the previous HVACcontroller was controlling one or more of a dehumidification unit, ahumidification unit, or a ventilation unit, the application program codemay display a wiring alert screen 1360 to the user via the userinterface of the remote device 62. As shown in FIG. 43, wiring alertscreen 1360 may include a first label 1362 that identifies the currentphase of the setup process. A status bar indicator 1364 may also beprovided that shows the status of the installation phase. In addition,screen 1360 may include a brief text string 1366 identifying the wiringalert. A user message 1368 may also be displayed on screen 1360. Theuser message may contain information about the wiring alert. Inaddition, screen 1360 may include a user prompt 1370 that may prompt theuser to select which of a humidification unit, a dehumidification unit,and/or ventilation unit the user desires to wire to the new HVACcontroller 18 from a list of selectable options 1372 a-1372 c. Screen1360 may include an additional user prompt 1374 that may prompt the userto visit a website or view a web page associated with the HVACcontroller 18 for additional details related to wiring the new HVACcontroller 18 to control one or more of a humidification unit, adehumidification unit, and/or ventilation unit. In some cases, the userprompt 1374 may include a hyperlink (not shown) that, when selected by auser, may cause the application program code the launch a web browserprovided by the user's remote device 62 and cause the website or webpage containing the additional wiring configuration information to bedisplayed to the user via the user interface of the remote device 62.Selection of the button 1376 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to the installation of the new HVAC controller 18.

FIG. 44 shows another screen 1380 that may be displayed by theapplication program code as part of the sequence of screens related tothe installation of a new HVAC controller 18. In some cases, asdiscussed herein, the sequence of screens may be a predeterminedsequence of screens having a predetermined display order, but this isnot required. In this case, the sequence of screens may be dependent, atleast in part, on the wiring configuration indicated through screen 1260(FIGS. 37 and 38). As shown in FIG. 44, screen 1380 includes a firstlabel 1382 that identifies the current phase of the setup process. Astatus bar indicator 1384 may also be provided that shows the status ofthe installation phase. In addition, screen 1380 may include a brieftext string 1386 identifying the current step of the installation phase.For example, as shown in FIG. 44, the brief text string 1386 identifiesthe current step as “Connect Wires.”Screen 1380 may include at least oneuser message 1388 that may describe at least one step for connecting oneor more wires to the new HVAC controller as part of the “Connect Wires”step of the installation phase. In some cases, in addition to describingat least one step of the wiring connection process, screen 1380 maydisplay at least one diagram 1390 adjacent the user message 1388. Thediagram 1390 may provide a visual illustration of the step described byuser message 1388. In some cases, screen 1380 may also display anadditional user message 1392 that may describe another step of thewiring connection process. In some cases, the user message 1392 mayinstruct a user to connect the wires according to a wiring diagram 1394that may be displayed on screen 1380 in connection with and adjacent tothe user message 1392. The wiring diagram 1394 that is displayed may bedependent upon the legacy wiring diagram indicated by the user and theuser's answers to the one or more questions about the user's HVAC systemincluding additional HVAC equipment that may be present such as, forexample, a humidification unit, a dehumidification unit and/or aventilation unit. As shown in FIG. 44, the application program code maydisplay one or more steps related to a wiring configuration process fora common wiring configuration on a single screen 1380. An informationicon 1396 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the installation phase,sometimes including a video demonstration. Selection of the button 1312labeled “next” may cause the application program code to display anotherscreen in a sequence of screens related to the installation of thereplacement HVAC controller 18.

It will be generally understood that the number of steps related to thewiring connection process and/or the number of diagrams that may bedisplayed in connection with the steps may be dependent upon the wiringconfiguration indicated by the user through screen 1260 (FIGS. 37 and38). In some cases, one or more additional screens or a scrollingdisplay including additional steps and/or diagrams may be displayed bythe application program code in connection with a wiring connectionprocess as necessary.

Referring back to FIGS. 32 and 44, in some instances a user may capturea photo or video of the existing wire panel using a camera built intotheir remote device 62 or a separate camera, and the photo or video maybe read by the application program code. The application program codemay include wire recognition logic incorporating appropriate digitalprocessing techniques for identifying the color and the position of thewires in the picture of the existing wire panel. The wire recognitionlogic may use image processing algorithms, and may be substantiallysimpler than some more complex image processing applications such asfacial recognition applications. The wire recognition logic may enablethe application program code to determine the existing wiringconfiguration based on the color and/or positions of the wires in thepicture. In some cases, the application program code may include logicfor recognizing if one or more wire terminals includes a jumper. In somecases, the wire recognition logic contained within the applicationprogram code may cause the controller of the remote device 62 to accessa wiring configuration database stored locally in the memory of theremote device 62, and to compare the existing wiring configurationdetected by the wire recognition logic to the wiring configurationscontained within the database. Based on the comparison of the existingwiring configuration to the wiring configurations stored in thedatabase, the controller of the remote device 62 may identify anappropriate wiring configuration for the new thermostat based on thecomparison and, in some cases, answers to one or more interviewquestions about the HVAC system provided by the user via a userinterface of the remote device 62. The application program code may thendisplay a recommended wiring diagram for the new thermostat to the uservia the user interface of the remote device, and instruct the user toconnect the existing wires according to a wiring diagram, such as shownin FIG. 44.

Rather than doing the processing on the remote device 62, it iscontemplated that the wiring recognition logic may be implemented on aremote server. The remote device 62 may transmit a captured wiringconfiguration to the remote server. The remote server may then access awiring configuration database stored at the server and the server maycompare the existing wiring configuration to the wiring configurationscontained within the database. The remote server may identify anappropriate wiring configuration for the new thermostat based on thecomparison and, in some cases, answers to one or more interviewquestions about the HVAC system provided by the user. The remote servermay then transmit a message containing a recommended new wiringconfiguration to the remote device 62 where it may be displayed to theuser via the user interface of their remote device 62, such as shown inFIG. 44, by the application program code of the remote device 62. Theseare just some examples.

FIG. 45 shows another screen 1400 that may be displayed as part of thesequence of screens related to the installation of the new HVACcontroller 18. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 45, screen 1400 includes afirst label 1402 that identifies the current phase of the setup process.A status bar indicator 1404 may also be provided that shows the statusof the installation phase. In addition, screen 1400 may include a brieftext string 1406 identifying the current step of the installation phase.For example, as shown in FIG. 45, the brief text string 1406 identifiesthe current step as “Mount Trim Ring.” A user message 1408 may also bedisplayed on screen 1400. In some cases, the user message 1408 mayprovide a brief explanation of the current step of the installationphase identified by the brief text string 1406. In addition, screen 1400may include an instructional diagram 1410 visually showing the user howto mount the trim ring. An information icon 1412 may be provided that,when selected by a user, may cause the application program code todisplay an additional screen including detailed information about thecurrent step of the installation phase, sometimes including a videodemonstration. Selection of the button 1414 labeled “next” may cause theapplication program code to display another screen in a sequence ofscreens related to the installation of the replacement HVAC controller18.

FIG. 46 shows another screen 1420 that may be displayed as part of thesequence of screens related to the installation of the new HVACcontroller 18. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 46, screen 1420 includes afirst label 1422 that identifies the current phase of the setup process.A status bar indicator 1424 may also be provided that shows the statusof the installation phase. In addition, screen 1420 may include a brieftext string 1426 identifying the current step of the installation phase.For example, as shown in FIG. 46, the brief text string 1426 identifiesthe current step as “Mount Wallplate.” A user message 1428 may also bedisplayed on screen 1420. In some cases, the user message 1428 mayprovide a brief explanation of the current step of the installationphase identified by the brief text string 1426. In addition, screen 1420may include an instructional diagram 1430 visually showing the user howto mount the wallplate to a wall. An information icon 1432 may beprovided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the installation phase, sometimesincluding a video demonstration. Selection of the button 1434 labeled“next” may cause the application program code to display another screenin a sequence of screens related to the installation of the replacementHVAC controller 18.

FIG. 47 shows another screen 1440 that may be displayed as part of thesequence of screens related to the installation of the new HVACcontroller 18. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 47, screen 1440 includes afirst label 1442 that identifies the current phase of the setup process.A status bar indicator 1444 may also be provided that shows the statusof the installation phase. In addition, screen 1440 may include a brieftext string 1446 identifying the current step of the installation phase.For example, as shown in FIG. 47, the brief text string 1446 identifiesthe current step as “Attach to Wallplate.” A user message 1448 may alsobe displayed on screen 1420. In some cases, the user message 1448 mayprovide a brief explanation of the current step of the installationphase identified by the brief text string 1446. In addition, screen 1440may include an instructional diagram 1450 visually showing the user howto attach the HVAC controller to the wallplate. An information icon 1452may be provided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the installation phase, sometimesincluding a video demonstration. Selection of the button 1454 labeled“next” may cause the application program code to display another screenin a sequence of screens related to the installation of the replacementHVAC controller 18.

FIG. 48 shows another screen 1460 that may be displayed as part of thesequence of screens related to the installation of the new HVACcontroller 18. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 48, screen 1460 includes afirst label 1462 that identifies the current phase of the setup process.A status bar indicator 1464 may also be provided that shows the statusof the installation phase. In addition, screen 1460 may include a brieftext string 1466 identifying the current step of the installation phase.Alternatively, or in addition to, the brief text string 1466 mayinstruct the user to take a desired action. For example, as shown inFIG. 48, the brief text string 1446 instructs a user to “Turn on Power.”A user message 1468 may also be displayed on screen 1460. In some cases,the user message 1468 may provide a brief explanation of the currentstep of the installation phase identified by the brief text string 1466.In addition, screen 1460 may include an instructional diagram 1470visually showing the user how to turn the power on to the HVACcontroller 18. An information icon 1472 may be provided that, whenselected by a user, may cause the application program code to display anadditional screen including detailed information about the current stepof the installation phase, sometimes including a video demonstration.Selection of the button 1474 labeled “next” may cause the applicationprogram code to display another screen in a sequence of screens relatedto the installation of the replacement HVAC controller 18.

FIG. 49 shows another screen 1480 that may be displayed as part of thesequence of screens related to the installation of the new HVACcontroller 18. In some cases, as discussed herein, the sequence ofscreens may be a predetermined sequence of screens having apredetermined display order. As shown in FIG. 49, screen 1480 includes afirst label 1482 that identifies the current phase of the setup process.A status bar indicator 1484 may also be provided that shows the statusof the installation phase. In addition, screen 1480 may include a brieftext string 1486 identifying the current step of the installation phase.A user message 1488 may also be displayed on screen 1480. In some cases,the user message 1488 may provide a brief explanation of the currentstep of the installation phase identified by the brief text string 1486.In some cases, the user message 1488 may provide additional informationabout the next phase in the installation phase. An information icon 1492may be provided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the installation phase, sometimesincluding a video message. Selection of the button 1494 labeled “next”may cause the application program code to display another screen in asequence of screens related to the installation of the replacement HVACcontroller 18.

FIG. 50 shows a schematic view of an illustrative HVAC controller 18after a successful installation. In some cases, the HVAC controller 18may glow and/or emit light pulses during its initial startup. In somecases, this may include illuminating the light ring to produce a haloglow around the HVAC controller 18. In some cases, this may visuallyindicate to the user that the HVAC controller 18 is starting up. Oncethe HVAC controller 18 has stopped glowing and/or pulsing and the liquidcrystal display of the user interface is on, the HVAC controller 18 isready to be configured to control one or more components of the HVACsystem 4.

In some cases, upon successful installation of the HVAC controller 18,the HVAC controller 18 may be programmed to configure itself as a WiFiaccess point for hosting its own wireless network 54 within a buildingor structure, and may be programmed to accept a wireless connection witha user's remote device 62. In some cases, the application codepreviously downloaded and stored in the memory of the user's remotedevice 62 may cause the remote device 62 to search for availablewireless networks within and/or in close proximity to the building orstructure in which the HVAC controller 18 is located. Since the HVACcontroller 18 may be initially configured as a wireless access point,the application program code may cause the remote device 62 to detectthe wireless network hosted by the HVAC controller 18, and to displaythe HVAC controller's wireless network on the user interface of theremote device 62 as being available for connection. The HVACcontroller's wireless network may be displayed as one selectable optionamong a list of other wireless networks that are available in the areafor connection. A user may initiate connection to the HVAC controller'swireless network by selecting the HVAC controller's wireless networkfrom the list of wireless networks. In some cases, a password may berequested. In any event, once connected to the HVAC controller'swireless network, the user may be able to configure the HVAC controller18 to control one or more components of the HVAC system 4 through thesame or a different application program code stored on the user's remotedevice 62 for that purpose.

FIG. 51 provides an illustrative screen 1510 that may be displayed onthe user interface of the remote device 62 when the remote device 62 isattempting to connect to the wireless access point hosted by the HVACcontroller 18. As shown in FIG. 51, screen 1510 may include a list 1512of wireless networks 1514 available in the area for connection includingthe wireless network hosted by the HVAC controller 18. Each of theavailable wireless networks 1514 displayed on the screen 1510 may bedisplayed as individually selectable options available for selection bya user, and in the example shown, are assigned a unique SSID thatidentifies them to a user. For example, the HVAC controller 18 may hostan access point wireless network identified as “TSTAT03”. The remotedevice 62 may attempt to connect to the HVAC controller's wirelessnetwork upon selection of the wireless network option 1514 labeled“TSTAT03” by a user. FIG. 52 provides an example of a screen 1520 thatmay be displayed on the user interface of the HVAC controller 18 whenthe remote device 62 is attempting to connect to the HVAC controller 18over the wireless network hosted by the HVAC controller 18.

A wireless network may be established between the HVAC controller 18 anda remote device 62 upon acceptance of the connection from the remotedevice 62. In many cases, the wireless network may be hosted by the HVACcontroller 18 and may initially be used to access and configure the HVACcontroller 18 via the application program code previously downloaded andstored on the user's remote device 62. In some cases, the HVACcontroller 18 and the remote device 62 may remain paired over thewireless network hosted by the HVAC controller 18 during theconfiguration phase and at least part of the connection phase of theinstaller setup process. During the connection phase of the installationsetup process, as will be described herein, the HVAC controller 18 mayterminate the hosted wireless network and reconfigure itself as a clientdevice on the building's wireless network.

FIG. 53 provides an illustrative screen 1524 that may be displayed onthe display of the user interface of the HVAC controller 18 uponsuccessful connection of the remote device 62 to the wireless networkhosted by the HVAC controller 18. Screen 1524 may include a user message1526 that indicates that the connection to the remote device 62 wassuccessful. Additionally, in some cases, screen 1524 may include a userprompt 1526 that may prompt the user to continue to use the applicationprogram code stored on the remote device 62 to setup and/or configurethe HVAC controller 18.

In some cases, the HVAC controller 18 may be configured to connect to asecond wireless network 1538 such as, for example, the building's WiFinetwork. FIG. 54 provides a schematic diagram of a network architecturethat may be established between the user's remote device 62, the HVACcontroller 18, and a cloud-based, external web service 1550 (e.g.Honeywell's TOTAL CONNECT™ web service) hosted by a remote/external webserver 1556. In many cases, the second wireless network 1538 may becapable of communicating over a wide area network 1542 (e.g. theInternet) via a router or gateway 1543 to access the external webservice 1550 hosted by the external web server 1556. The external webservice 1550 may include a user account having one or more user profilesthat may be associated with the HVAC controller 18. The external webservice 1550 may provide additional functionalities and or programmingcapabilities that may not otherwise be available at the HVAC controller18, or through application program code executed by the user's remotedevice 62. Additionally, the external web service 1550 may be programmedto receive selected data from the HVAC controller 18 over the wide areanetwork 1542. In some cases, after connection between the HVACcontroller 18 and the web service 1550 has been established as part ofthe installation setup process, the HVAC controller 18 may be configuredto deliver some or all of the installer setup parameters to the webservice 1550 over the wide area network 1542 via the building's wirelessnetwork 1538. The web service 1550 may be programmed to associate thevarious installation setup parameters with the user's account hosted bythe web service 1550 and store them in an appropriate database.

In some cases, the HVAC controller 18 may be programmed to receive oneor more access parameters for accessing the second wireless network 1538over the first wireless network 1534 from the user's remote device 62.The one or more access parameters may include a service set identifier(SSID) for the second wireless network 1538 and/or password required togain access to the second wireless network 1538. In some cases, the oneor more access parameters for accessing the second wireless network 1538may have been previously entered by a user through the user interface ofthe user's remote device 62, and may be stored in the memory of theremote device 62. In this example, the one or more access parameters foraccessing the second wireless network 1538 may be passed to the HVACcontroller 18 when the remote device 62 is connected to the HVACcontroller 18 via the first wireless network 1534.

In some cases, upon connection of the remote device 62 to the HVACcontroller 18 via the first wireless network 1534, the HVAC controller18 may be configured to implement a web server for serving up one ormore web pages over the first wireless network 1534 that may bedisplayed and viewed on the user interface of the wireless device 62.The one or more web pages displayed on the user interface of thewireless device 62 may solicit and accept the one or more accessparameters for accessing the second wireless network 1538 from a user.Such a feature is shown and described in U.S. application Ser. No.13/559,470 which is incorporated herein by reference in its entirety forall purposes. These are just some examples. The HVAC controller 18 maybe programmed to use, at least in part, the one or more accessparameters to connect to the second wireless network 1538. In somecases, the HVAC controller 18 may be programmed to connect to the secondwireless network 1538 as a network client device using the one or moreaccess parameters received from the user's remote device 62, making theHVAC controller 18 available on the second network 1538.

In some cases, the HVAC controller 18 may be programmed to firstdisconnect itself from the first wireless network 1534 establishedbetween the HVAC controller 18 and the user's remote device 62 beforeconnecting to the second wireless network 1538 as a network client. Forexample, and in some cases, the HVAC controller 18 may be programmed toperform a reset, and on initialization, may automatically connect to thesecond wireless network 1538 using the one or more access parameters. Insome cases, this step may be performed by the HVAC controller 18 afterthe user has configured the HVAC controller 18 to control one or morecomponents of the HVAC system 4 using the application program codestored in the memory of the user's remote device 62 when the user'sremote device is in communication with the HVAC controller 18 over thefirst wireless network 1534 established between the remote device 62 andthe HVAC controller 18. For example, this step may be performed duringthe connection phase of the installer setup process, discussed infurther detail below.

The configuration phase, as described herein, may be completed utilizingthe application program code executed by the user's remote device 62when the user's remote device 62 is connected to the HVAC controller 18over the first network 1534 hosted by the HVAC controller 18 (FIG. 54).The HVAC controller 18 may then transmit the configuration informationto the web service 1550 when a second network connection 1538 isestablished between the web service 1550 and the HVAC controller 18.Alternatively, or in addition, the application program code executed bythe user's remote device 62 may transmit the configuration informationover the second network 1538 or another network 1539 (e.g. cell phone,SMS, or the like) to the web service 1550, and the web service 1550 maytransmit the configuration information to the HVAC controller 18.

More particularly, and in some cases, because a single communicationprotocol may be utilized by the remote device 62 to communicate with theweb service 1550 or the HVAC controller 18, the application program codemay be used to configure the HVAC controller 18 when the user's remotedevice 62 is connected to the HVAC controller 18 over the first network1534, or when the user's remote device 62 is in communication with theHVAC controller 18 over the wide area network 1542 via the external webservice 1550. The user's remote device 62 may communicate directly withthe external web service 1550 via the second network 1538 or anothernetwork 1539, as desired. This feature may be useful if the networkconnection established between the HVAC controller 18 and the remotedevice 62 over the first network 1534 becomes disrupted. For example, insome cases, the user may finish configuring the HVAC controller 18 usingthe application program code on their remote device 62. This informationmay then be transmitted from the user's remote device 62 to the webservice 1550 via the second network 1538 or another network 1539. Theweb service 1550 may associate the configuration information with theuser's account hosted by the web service 1550, and then transmit theconfiguration to the HVAC controller 18 via the second network 1538 whena network connection between the HVAC controller 18 and the web service1550 is established.

Similarly, after the user has finished configuring the HVAC controller18 utilizing the network connection between the HVAC controller 18 andthe remote device 62, the HVAC controller 18 may transmit theconfiguration information to the web service 1550 over the secondnetwork 1548. Additionally, in some cases, both the web service 1550 andthe HVAC controller 18 may utilize the same installation setup logic byexecuting the same code from the same code base. The code may becompiled for use by the HVAC controller 18 and for use by the webservice 1550. This feature may allow the web service 1550 to more easilycommunicate directly with the application program code executed by theuser's remote device 62, regardless of the state of the HVAC controller18. In some cases, because the application program code uses the samecommunication protocol to communicate with the web service 1550 and theHVAC controller, and both the web service 1550 and the HVAC controller18 may use the same installation setup logic by executing the same basiccode from the same code base, configuration information may betransmitted between any one of the application program code executed bythe user's remote device 62, the HVAC controller 18, and/or the webservice 1550. Additionally, because each of the HVAC controller 18, theapplication program code, and the web service 1550 use the sameinstallation setup logic, this may permit a user to begin configuringthe HVAC controller 18 utilizing the application program code executedby their remote device 62 and finish configuring the HVAC controller 18through the web service or at the user interface of the HVAC controller18 itself with minimal differences in the user experience.

FIG. 55 provides an example of a screen 1560 that may be displayed onthe user interface of the user's remote device 62 upon successfulconnection of the remote device 62 to the wireless network hosted by theHVAC controller 18. In some cases, screen 1560 may be a first screen ina sequence of screens related to configuring the newly installed HVACcontroller 18. In some cases, the sequence of screens may be apredetermined sequence of screens having a predetermined display order.The user may move backward and forward within the predetermined sequenceof screens by the selection of appropriate buttons provided on thescreen for this purpose. In other cases, the user may scroll backwardand forward within the predetermined sequence of screens by draggingtheir finger from side to side across the display of their remote device62. These are just some examples.

As shown in FIG. 55, screen 1560 includes a first label 1562 thatidentifies the current phase of the setup process. In this example,first label 1562 identifies the current phase of the setup process as“Configure.” A status bar indicator 1564 may also be provided that showsthe current status of the configuration phase. In addition, screen 1560may include a brief text string 1566 identifying the current step of theconfiguration phase. For example, as shown in FIG. 55, the brief textstring 1566 identifies the current step as “Equipment Configuration.” Auser message 1568 may also be displayed on screen 1560. The user messagemay contain information that may aid the user in the current phase ofthe process. In some cases, the user message 1568 may provide a briefexplanation of the current step of the configuration phase identified bythe brief text string 1566. Screen 1560 may also include a button 1572labeled “skip configure” that may permit a user to skip theconfiguration phase. A user may select button 1572 labeled “skipconfigure” if they have already completed this phase of the setupprocess. In addition, screen 1560 may include a button 1574 labeled“advanced configuration” that, when selected by a user, may cause theapplication program code to display one or more screens related tosetting one or more detailed HVAC settings such as, for example, anumber of heating cycles, reversing valve settings, fan operation, etc.An information icon 1576 may be provided that, when selected by a user,may cause the application program code to display an additional screenincluding detailed information about the current step of theconfiguration phase, sometimes including a video demonstration.Selection of the button 1578 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to configuring the newly installed HVAC controller 18.

FIG. 56 provides another example of a screen 1580 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 56,screen 1580 includes a first label 1582 that identifies the currentphase of the setup process. In this example, first label 1582 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1584 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1580 may include a brief textstring 1586 identifying the current step of the configuration phase. Forexample, as shown in FIG. 56, the brief text string 1586 identifies thecurrent step of the configuration phase as “Heating System.” A usermessage 1588 may also be displayed on screen 1580. In this example, theuser message may contain a user query that prompts the user to selecttheir heating system type from a list 1590 of one or more selectableoptions 1592 a-1592 e, each selectable option corresponding to adifferent type of heating system. In some cases, a radio button orcheckbox may be provided to highlight the user's selection.Additionally, the list 1590 may indicate the most common type of heatingsystem to aid the user in their selection. An information icon 1594 maybe provided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the configuration phase, sometimesincluding a video demonstration. Selection of the button 1596 labeled“next’ may cause the application program code to display the next screenin the sequence of screens related to configuring the newly installedHVAC controller 18.

FIG. 57 provides another example of a screen 1600 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 57,screen 1600 includes a first label 1602 that identifies the currentphase of the setup process. In this example, first label 1602 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1604 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1600 may include a brief textstring 1606 identifying the current step of the configuration phase. Forexample, as shown in FIG. 57, the brief text string 1606 identifies thecurrent step of the configuration phase as “Fuel Source.” A user message1608 may also be displayed on screen 1600. In this example, the usermessage 1608 may contain a user query that prompts the user to selecttheir fuel source from a list 1610 of one or more selectable options1612 a-1612 f, each selectable option corresponding to a different typeof fuel source. In some cases, a radio button or checkbox may beprovided to highlight the user's selection. Additionally, the list 1610may indicate the most common type of fuel source to aid the user intheir selection. An information icon 1614 may be provided that, whenselected by a user, may cause the application program code to display anadditional screen including detailed information about the current stepof the configuration phase, sometimes including a video demonstration.Selection of the button 1616 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to configuring the newly installed HVAC controller 18.

FIG. 58 provides another example of a screen 1620 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 58,screen 1620 includes a first label 1622 that identifies the currentphase of the setup process. In this example, first label 1622 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1624 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1620 may include a brief textstring 1626 identifying the current step of the configuration phase. Forexample, as shown in FIG. 58, the brief text string 1626 identifies thecurrent step of the configuration phase as “Reversing Valve.” A usermessage 1628 may also be displayed on screen 1620. In this example, theuser message 1628 may contain a user query that asks the user toidentify what stage is used by the reversing valve from a list 1630 ofone or more selectable options 1632 a-1632 b, each selectable optioncorresponding to a different stage that may be utilized by a reveringvalve. In some cases, a radio button or checkbox may be provided tohighlight the user's selection. Additionally, the list 1630 may indicatethe most common stage utilized by a reversing valve. An information icon1634 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the configuration phase,sometimes including a video demonstration. Selection of the button 1636labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to configuring the newlyinstalled HVAC controller 18.

FIG. 59 provides another example of a screen 1640 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 59,screen 1640 includes a first label 1642 that identifies the currentphase of the setup process. In this example, first label 1642 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1644 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1640 may include a brief textstring 1646 identifying the current step of the configuration phase. Forexample, as shown in FIG. 59, the brief text string 1646 identifies thecurrent step of the configuration phase as “Heat Stages.” A user message1648 may also be displayed on screen 1640. In this example, the usermessage 1648 may contain a user query that asks the user to identify thenumber of heating stages utilized by their heating system from a list1650 of one or more selectable options 1652 a-1652 c, each selectableoption corresponding to a different number of heating stages. In somecases, a radio button or checkbox may be provided to highlight theuser's selection. Additionally, the list 1650 may indicate the mostcommon number of stages utilized by a heating system. An informationicon 1654 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the configuration phase,sometimes including a video demonstration. Selection of the button 1656labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to configuring the newlyinstalled HVAC controller 18.

FIG. 60 provides another example of a screen 1660 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 60,screen 1660 includes a first label 1662 that identifies the currentphase of the setup process. In this example, first label 1662 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1664 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1660 may include a brief textstring 1666 identifying the current step of the configuration phase. Forexample, as shown in FIG. 60, the brief text string 1666 identifies thecurrent step of the configuration phase as “Cooling Stages.” A usermessage 1668 may also be displayed on screen 1660. In this example, theuser message 1668 may contain a user query that asks the user toidentify the number of cooling stages utilized by their cooling systemfrom a list 1670 of one or more selectable options 1672 a-1672 c, eachselectable option corresponding to a different number of cooling stages.In some cases, a radio button or checkbox may be provided to highlightthe user's selection. Additionally, the list 1670 may indicate the mostcommon number of stages utilized by a cooling system. An informationicon 1674 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the configuration phase,sometimes including a video demonstration. Selection of the button 1676labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to configuring the newlyinstalled HVAC controller 18. It will be generally understood that ifthe user does not have a cooling system, the user may advance throughthis screen by utilizing the next button and/or by dragging their fingeracross the display of the user interface of the remote device 62 orperform some other gesture.

FIG. 61 provides another example of a screen 1680 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 61,screen 1680 includes a first label 1682 that identifies the currentphase of the setup process. In this example, first label 1682 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1684 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1680 may include a brief textstring 1686 identifying the current step of the configuration phase. Forexample, as shown in FIG. 61, the brief text string 1686 identifies thecurrent step of the configuration phase as “Fan Operation.” A usermessage 1688 may also be displayed on screen 1680. In this example, theuser message 1688 may contain a user query that asks the user toidentify the mode of operation that is utilized by the system fan from alist 1690 of one or more selectable options 1692 a-1692 c, eachselectable option corresponding to a different mode of fan operation. Insome cases, a radio button or checkbox may be provided to highlight theuser's selection. Additionally, the list 1690 may indicate the mostcommon mode of fan operation. An information icon 1694 may be providedthat, when selected by a user, may cause the application program code todisplay an additional screen including detailed information about thecurrent step of the configuration phase, sometimes including a videodemonstration. Selection of the button 1696 labeled “next’ may cause theapplication program code to display the next screen in the sequence ofscreens related to configuring the newly installed HVAC controller 18.

FIG. 62 provides another example of a screen 1700 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 62,screen 1700 includes a first label 1702 that identifies the currentphase of the setup process. In this example, first label 1702 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1704 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1700 may include a brief textstring 1706 identifying the current step of the configuration phase. Forexample, as shown in FIG. 62, the brief text string 1706 identifies thecurrent step of the configuration phase as “Backup Heat.” A user message1708 may also be displayed on screen 1700. In this example, the usermessage 1708 may contain a user query that asks the user to identify thetype of backup heating utilize by the HVAC system 4 from a list 1710 ofone or more selectable options 1712 a-1712 b, each selectable optioncorresponding to a different type of backup heat. In some cases, a radiobutton or checkbox may be provided to highlight the user's selection.Additionally, the list 1710 may indicate the most common type of backupheat. An information icon 1714 may be provided that, when selected by auser, may cause the application program code to display an additionalscreen including detailed information about the current step of theconfiguration phase, sometimes including a video demonstration.Selection of the button 1716 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to configuring the newly installed HVAC controller 18. It willbe generally understood that if the system does not utilize backup heat,the user may advance through this screen by utilizing the next buttonand/or by dragging their finger across the display of the user interfaceof the remote device 62 or perform some other gesture.

FIG. 63 provides another example of a screen 1720 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 63,screen 1720 includes a first label 1722 that identifies the currentphase of the setup process. In this example, first label 1722 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1724 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1720 may include a brief textstring 1726 identifying the current step of the configuration phase. Forexample, as shown in FIG. 63, the brief text string 1726 identifies thecurrent step of the configuration phase as “Backup Heat-Fossil FuelKit.” A user message 1728 may also be displayed on screen 1720. In thisexample, the user message 1728 may contain a user query that asks theuser to identify the type of fossil fuel kit utilized for backup heatingby the HVAC system 4 from a list 1730 of one or more selectable options1732 a-1732 b, each selectable option corresponding to a different typeof fossil fuel kit. In some cases, a radio button or checkbox may beprovided to highlight the user's selection. Additionally, the list 1730may indicate the most common type of fossil fuel kit. An informationicon 1734 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the configuration phase,sometimes including a video demonstration. Selection of the button 1736labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to configuring the newlyinstalled HVAC controller 18. It will be generally understood that ifthe backup heat does not utilize a fossil fuel kit, the user may advancethrough this screen by utilizing the next button and/or by draggingtheir finger across the display of the user interface of the remotedevice 62 or performing some other gesture.

FIG. 64 provides another example of a screen 1740 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 64,screen 1740 includes a first label 1742 that identifies the currentphase of the setup process. In this example, first label 1742 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1744 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1740 may include a brief textstring 1746 identifying the current step of the configuration phase. Forexample, as shown in FIG. 64, the brief text string 1746 identifies thecurrent step of the configuration phase as “Backup Heat-Operation.” Auser message 1748 may also be displayed on screen 1740. In this example,the user message 1748 may contain a user query that asks the user to ifthe system using a heat pump for backup heat. The user may respond tothe query presented by the user message 1748 by selecting a first option1752 a labeled “Yes” or a second option labeled “No.” In some cases, aradio button or checkbox may be provided to highlight the user'sselection. An information icon 1754 may be provided that, when selectedby a user, may cause the application program code to display anadditional screen including detailed information about the current stepof the configuration phase, sometimes including a video demonstration.Selection of the button 1756 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to configuring the newly installed HVAC controller 18. It willbe generally understood that if the HVAC system 4 does not utilizebackup heating, the user may advance through this screen by utilizingthe next button and/or by dragging their finger across the display ofthe user interface of the remote device 62 or performing some othergesture.

FIG. 65 provides another example of a screen 1760 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 65,screen 1760 includes a first label 1762 that identifies the currentphase of the setup process. In this example, first label 1762 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1764 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1760 may include a brief textstring 1766 identifying the current step of the configuration phase. Forexample, as shown in FIG. 65, the brief text string 1766 identifies thecurrent step of the configuration phase as “Backup Heat-Fan.” A usermessage 1768 may also be displayed on screen 1760. In this example, theuser message 1768 may contain a user query that asks the user toidentify what mode of operation is utilized by the system fan for backupheat. The user may identify the fan mode of operation from a list 1770of selectable options 1772 a-1772 c, each selectable optioncorresponding to a different mode of fan operation for backup heat. Insome cases, a radio button or checkbox may be provided to highlight theuser's selection. In addition, the list 1770 may indicate the mostcommon mode of fan operation for backup heat. An information icon 1774may be provided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the configuration phase, sometimesincluding a video demonstration. Selection of the button 1776 labeled“next’ may cause the application program code to display the next screenin the sequence of screens related to configuring the newly installedHVAC controller 18. It will be generally understood that if the HVACsystem 4 does not utilize backup heating, the user may advance throughthis screen by utilizing the next button and/or by dragging their fingeracross the display of the user interface of the remote device 62 orperforming some other gesture.

FIG. 66 provides another example of a screen 1800 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. Screen 1800, shownin FIG. 66, relates to setting temperature setpoints for heating and/orcooling as applicable. It will be generally understood that a similarscreen or screens may be displayed related to setting a humiditysetpoint for heating and/or cooling as applicable. As shown in FIG. 66,screen 1800 includes a first label 1802 that identifies the currentphase of the setup process. In this example, first label 1802 identifiesthe current phase of the setup process as “Configure.” A status barindicator 1804 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1800 may include a brief textstring 1806 identifying the current step of the configuration phase. Forexample, as shown in FIG. 66, the brief text string 1806 identifies thecurrent step of the configuration phase as “Set ComfortTemperatures—Home.” A user message 1808 may also be displayed on screen1800. In this example, the user message 1808 may prompt the user toidentify a comfortable temperature when the user is at home for bothheating and/or cooling, as applicable. In some cases, screen 1800 mayinclude a first icon 1810 corresponding to a heating comforttemperature. Screen 1800 may also include a second icon 1812corresponding to cooling comfort temperature, as applicable. Identifyinglabels 1814, 1816 may be displayed adjacent the heating and/or coolingicons. In some cases, the user may adjust the heating and/or coolingtemperature values from the displayed default values by pressing and/orholding the icon until the desired temperature is displayed. In othercases, first and second arrows may be displayed adjacent each of theheating and cooling icons 1810, 1812 for adjusting the displayedtemperature values. These are just some examples. An information icon1817 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the configuration phase,sometimes including a video demonstration. Selection of the button 1818labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to configuring the newlyinstalled HVAC controller 18.

FIG. 67 provides another example of a screen 1820 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. Screen 1820, shownin FIG. 67, relates to setting temperature setpoint values for heatingand/or cooling as applicable. It will be generally understood that asimilar screen or screens may be displayed related to setting a humiditysetpoint value for heating and/or cooling. As shown in FIG. 67, screen1820 includes a first label 1822 that identifies the current phase ofthe setup process. In this example, first label 1822 identifies thecurrent phase of the setup process as “Configure.” A status barindicator 1824 may also be provided that shows the current status of theconfiguration phase. In addition, screen 1820 may include a brief textstring 1826 identifying the current step of the configuration phase. Forexample, as shown in FIG. 67, the brief text string 1826 identifies thecurrent step of the configuration phase as “Set ComfortTemperatures-Away.” A user message 1828 may also be displayed on screen1820. In this example, the user message 1828 may provide additionalinformation about utilizing temperature setpoint values during an awaymode of operation. In this example, screen 1820 may provide button 1830,that when selected by a user, may enable an auto mode of operation to beutilized by the HVAC controller 18 to control the temperature forheating and/or cooling according to one or more default temperaturesetpoint values when the HVAC controller 18 is controlling the HVACsystem 4 according to an away mode. In some case, screen 1820 maydisplay the default temperature setpoint values 1832, 1834 in a regionof the screen 1820. An information icon 1836 may be provided that, whenselected by a user, may cause the application program code to display anadditional screen including detailed information about the current stepof the configuration phase, sometimes including a video demonstration.Selection of the button 1838 labeled “next’ may cause the applicationprogram code to display the next screen in the sequence of screensrelated to configuring the newly installed HVAC controller 18.

As shown in FIG. 67, a user may enable or disable the auto away mode byselecting button 1830. In some cases, button 1830 may function as atoggle switch that when selected in a first instance by a user enablesthe auto away mode, and when selected in a second instance by a userdisables the auto away mode. In some cases, when selection of button1830 disables the auto mode, the application program code may displayscreen 1840, as shown in FIG. 68. Through screen 1840, the user mayadjust and select the temperature setpoint values 1842, 1844 for heatingand/or cooling to be utilized by the HVAC controller 18 to control theHVAC system 4 during an away mode of operation. In some cases, the usermay adjust the heating and/or cooling temperature values 1842, 1844 fromthe displayed default values by pressing and/or holding the icon untilthe desired temperature is displayed. Selection of the button 1846labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to configuring the newlyinstalled HVAC controller 18.

FIG. 69 provides another example of a screen 1850 that may be displayedon the user interface of the user's remote device 62 related toconfiguring the newly installed HVAC controller 18. As shown in FIG. 69,screen 1850 may provide a summary of the configuration settings acceptedfrom a user through the previous screens 1580, 1600, 1620, 1640, 1660,1680, 1700, 1720, 1740, 1760, 1800, 1820, and/or 1840. Screen 1850 mayinclude a first label 1852 that identifies the current phase of thesetup process. In this example, first label 1852 identifies the currentphase of the setup process as “Configure.” A status bar indicator 1854may also be provided that shows the current status of the configurationphase. In addition, screen 1850 may include a brief text string 1856identifying the current step of the configuration phase. For example, asshown in FIG. 69, the brief text string 1856 identifies the current stepof the configuration phase as “Configuration Summary.” A user message1858 may also be displayed on screen 1850. In this example, the usermessage 1858 may provide additional information about the configurationsummary screen 1850. In addition, screen 1850 may include one or moreselectable options 1860 a-1860 e, each option corresponding to adifferent component of the HVAC system 4 that was configured during theconfiguration phase of the installation setup process. Selection of anyone of the options 1860 a-1860 e by a user may cause the applicationprogram code to display detailed information about the configurationsettings identified for that particular HVAC system componentcorresponding to the selected option. An information icon 1864 may beprovided that, when selected by a user, may cause the applicationprogram code to display an additional screen including detailedinformation about the current step of the configuration phase, sometimesincluding a video demonstration. Selection of the button 1866 labeled“next’ may cause the application program code to display the next screenin the sequence of screens related to configuring the newly installedHVAC controller 18.

FIG. 70 shows an example of a screen 1870 that may be displayed on theuser interface of the user's remote device 62 by the application programcode upon successful completion of the configuration phase of theinstallation setup process. As shown in FIG. 70, screen 1870 can includea first label 1872 that identifies the current phase of the setupprocess. In this example, first label 1872 identifies the current phaseof the setup process as “Configure.” A status bar indicator 1874 mayalso be provided that shows the current status of the configurationphase. In addition, screen 1870 may include a brief text string 1876announcing completion of the configuration phase to the user. Forexample, as shown in FIG. 70, the brief text string 1876 states“Configuration Complete!” A user message 1878 may also be displayed onscreen 1870. In this example, the user message 1878 may provideadditional information about the next phase of the installation setupprocess. In some cases, screen 1870 may include a button 1880 labeled“skip” that, when selected by a user, may allow the user to skip thenext set of steps in the installation setup process. An information icon1884 may be provided that, when selected by a user, may cause theapplication program code to display an additional screen includingdetailed information about the current step of the configuration phase,sometimes including a video message. Selection of the button 1886labeled “next’ may cause the application program code to display thenext screen in the sequence of screens related to configuring the newlyinstalled HVAC controller 18.

FIG. 71 shows an example of a screen 1890 that may be displayed on thedisplay of the user interface of the HVAC controller 18. As shown inFIG. 71, screen 1890 includes a user message 1892 that informs the userthat the setup process is almost complete. In addition, screen 1890 mayinclude a user prompt 1894 that may prompt the user to utilize theapplication program code to connect the HVAC controller to thebuilding's wireless network (e.g. second network 1538 shown in FIG. 54).

FIGS. 72-75 and 77 show several illustrative screens that may bedisplayed to the user via the user interface of the user's remote device62 by the application program code, as described herein, that guide theuser through connecting the newly installed HVAC controller 18 to thebuilding's wireless network (e.g. second network 1538 shown in FIG. 54).In some cases, as discussed herein, the sequence of screens may be apredetermined sequence of screens having a predetermined display order.The user may move backward and forward within the predetermined sequenceof screens by the selection of appropriate buttons provided on thescreen for this purpose. In other cases, the user may scroll backwardand forward within the predetermined sequence of screens by draggingtheir finger from side to side across the display of their remote device62. These are just some examples.

FIG. 72 shows an example of a first screen 1900 that may be displayed onthe user interface of the user's remote device 62 related to connectingthe HVAC controller 18 to the building's wireless network (e.g. secondnetwork 1538 shown in FIG. 54) and in some cases, to a web service 1550(e.g. Honeywell's TOTAL CONNECT™ web service) associated with the HVACcontroller 18. As shown in FIG. 72, screen 1900 can include a firstlabel 1902 that identifies the current phase of the setup process. Inthis example, first label 1902 identifies the current phase of the setupprocess as “Connect.” Additionally, screen 1900 may include a brief textstring 1904 that identifies the current step of the connection phase.For example, as shown in FIG. 72, the brief text string 1904 identifiesthe current step of the connection phase as “Connect Your Thermostat.” Auser message 1906 may be displayed on screen 1900. User message 1906 mayinclude additional information or instructions about the current step ofthe connection phase. In some cases, screen 1900 may also include icons1908 a-1908 d identifying each of the four phases of the setup process,which in this example include “install”, “configure”, “connect” and“personalize”. In addition, the icon 1908 c identifying the currentphase of the setup process may be grayed-out, bolded, or otherwisehighlighted to visually indicate to the user that it is the currentphase of the setup process. Once that phase of the setup process iscomplete the icon(s) may include a dot or a checkmark in a corner of theicon to indicate that the phase has been completed. For example, asshown in FIG. 72, icons 1908 a and 1908 b corresponding to theinstallation phase and the configuration phase of the setup process eachinclude a checkmark indicating to the user that those phases of thesetup process have been completed. The user may initiate the connectionprocess by selecting 1910 labeled “start connecting” provided at thebottom of screen 1900.

Selection of button 1910 labeled “start connecting” provided on screen1900 may cause the application program code to display the next screen1920, shown in FIG. 73, in the sequence of screens related to connectingthe HVAC controller 18 to the building's wireless network (e.g. secondnetwork 1538 shown in FIG. 54) and/or web service 1550 to be displayedon the user interface of the user's remote device 62. As shown in FIG.73, screen 1920 can include a first label 1922 that identifies thecurrent phase of the setup process. In this example, first label 1922identifies the current phase of the setup process as “Connect.” A statusbar indicator 1924 may also be provided that shows the current status ofthe connection phase. In addition, screen 1920 may include a brief textstring 1926 identifying the current step of the connection phase. Forexample, as shown in FIG. 72, the brief text string 1926 identifies thecurrent step of the connection phase as “Connect to Home Wi-Fi.” A usermessage 1928 may also be displayed on screen 1920. In this example, theuser message 1928 may prompt the user to identify and select thebuilding's wireless network from a list 1930 of available wirelessnetworks 1932 a-1932 d. It may be useful to note, that at this point inthe installation setup process the user's remote device 62 and the HVACcontroller 18 may be paired together over the first wireless network1534 hosted by the HVAC controller 18. In some cases, however, theuser's remote device 62 and the HVAC controller 18 may not be pairedtogether over the first wireless network 1534 hosted by the HVACcontroller 18.

If a selected building's wireless network (e.g. second network 1538shown in FIG. 54) is password protected, the application program codemay then cause screen 1940, shown in FIG. 74, to be displayed to theuser via the user interface of the remote device 62. Through screen1940, the application program code may solicit and accept the networkpassword from the user for accessing the building's wireless network. Asshown in FIG. 74, screen 1940 can include a first label 1942 thatidentifies the current phase of the setup process. In this example,first label 1942 identifies the current phase of the setup process as“Connect.” A status bar indicator 1944 may also be provided that showsthe current status of the connection phase. In addition, screen 1940 mayinclude a brief text string 1946 identifying the current step of theconnection phase. For example, as shown in FIG. 74, the brief textstring 1946 identifies the current step of the connection phase as“Network Password.” A user message 1948 may also be displayed on screen1940. In this example, the user message 1928 may prompt the user toprovide the password for the building's wireless network. Screen 1940may include a password entry field 1950 which the user may utilize toenter the network password. Selection of the button 1952 labeled “next’may cause the application program code to accept the password entered bythe user via the password entry field 1950 and to display the nextscreen in the sequence of screens related to connecting the HVACcontroller 18 to a wireless network and/or web service.

The application program code may transmit the selected network ID and/orpassword to the HVAC controller 18 over the first wireless network 1534which is hosted by the HVAC controller 18, after which the applicationprogram code may cause the remote device 62 to disconnect from firstnetwork 1534 hosted by the HVAC controller and connect to the building'swireless network 1538. The application program code may cause the remotedevice 62 to communicate with the HVAC controller 18 via the web service1550 upon successful connection of the HVAC controller 18 to the webservice 1550. In parallel or in rapid succession, upon receiving thebuilding's network ID and password from the application program code,the HVAC controller 18 will attempt to connect to the building'swireless network 1538. Once successfully connected to the building'swireless network, the HVAC controller 18 may be programmed to sync tothe web service 1550 associated with the HVAC controller 18 over thewide area network 1542. In some cases, during this step of theconnection process, the HVAC controller 18 may be programmed todiscontinue hosting the first network 1534 (FIG. 54) and to reconfigureitself as a network client on the building's wireless network 1538.

FIG. 75 shows an example of a screen 1960 that may be displayed by theapplication program code on the user interface of the remote device 62during the connection phase when the HVAC controller 18 is attempting toconnect to the building's wireless network 1538 and ultimately, with theweb service 1550 associated with the HVAC controller 18. As shown inFIG. 75, screen 1960 can include a first label 1962 that identifies thecurrent phase of the setup process. In this example, first label 1962identifies the current phase of the setup process as “Connect.” A statusbar indicator 1964 may also be provided that shows the current status ofthe connection phase. In addition, screen 1960 may include a brief textstring 1966 identifying the current step of the connection phase. Forexample, as shown in FIG. 75, the brief text string 1966 identifies thecurrent step of the connection phase as “Connect to Web Service.” A usermessage 1968 may also be displayed on screen 1960. User message 1968 mayprovide additional information about the current step of the connectionprocess. In some cases, screen 1960 may display a busy indicator 1970indicating to the user that the HVAC controller 18 is busy. If the HVACcontroller 18 cannot connect to the building's wireless network 1538and/or the web service 1550, screen 1960 may include an error message1972. In addition, screen 1960 may include a button 1974 labeled“connect again” that, when selected by the user, may cause the HVACcontroller 18 to attempt to re-connect to the building's wirelessnetwork 1538 and/or web service 1550 if the previous connection attemptwas unsuccessful.

FIG. 76 shows an example of a screen 1980 that may be displayed on thedisplay of the user interface of the HVAC controller 18 when the HVACcontroller 18 is attempting to connect to the building's wirelessnetwork 1538 and ultimately, the web service 1550. As shown in FIG. 76,screen 1980 includes a user message 1982 that indicates to the user thatthe connection process is occurring.

In some cases, the web service 1550 may transmit a message to theapplication program code stored in the memory of the user's remotedevice confirming that the HVAC controller 18 was successfullyconfigured and is connected to the web service 1550. FIG. 77 shows anexample of a screen 1990 that may be displayed by the applicationprogram code on the user interface of the remote device 62 uponsuccessful connection of the HVAC controller 18 to the web service 1550.Screen 1990 can include a first label 1992 that identifies the currentphase of the setup process. In this example, first label 1992 identifiesthe current phase of the setup process as “Connect.” A status barindicator 1994 may also be provided that shows the current status of theconnection phase. In addition, screen 1990 may include a brief textstring 1996 informing the user that the connection was successful. Auser message 1998 may also be displayed on screen 1960. User message1998 may provide additional information about the current step of theconnection phase and may provide information about the next step in theinstallation setup process. Selection of button 2000 labeled “next” maycause the application code to display another screen related to thesetup of the HVAC controller.

FIG. 78 shows an example of a screen 2010 that may be displayed on thedisplay of the user interface of the HVAC controller 18 when the HVACcontroller 18 has successfully connected to the building's wirelessnetwork 1538 and the web service 1550 associated with the HVACcontroller 18 (e.g. Honeywell's TOTAL CONNECT™ web service). As shown inFIG. 78, screen 2010 includes a user message 2012 that informs the userthat the HVAC controller 18 is successfully connected to the building'swireless network 1538 and the web service 1550. In addition, screen 2010may include a user prompt 2014 that may prompt a user to register theHVAC controller utilizing the application program code stored in thememory of the user's remote device 62.

An illustrative connection process that may be utilized to connect theHVAC controller 18 to the building's wireless network 1538 andsubsequently to the web service 1550 is also shown and described in U.S.application Ser. No. 13/559,470 which is incorporated herein byreference in its entirety for all purposes.

The last phase in the illustrative installation setup process relates topersonalizing the newly installed HVAC controller 18. FIGS. 79-84 showillustrative screens that may be displayed on the user interface of aremote device by an application program code that may guide a userthrough personalizing the HVAC controller 18. Personalizing the HVACcontroller 18 may include naming the HVAC controller and, in cases wheremultiple thermostats may be located within the building, identifying thelocation of the HVAC controller 18. In addition, personalizing the HVACcontroller 18 may include registering and associating the HVACcontroller with the user's account hosted by the web service 1550. Insome cases, as part of the registration process and as discussed indetail in U.S. application Ser. No. 13/559,470, the HVAC controller 18may transmit its MAC address and CRC code to the remote device 62. Theapplication program code may then cause the remote device 62 to transmitthe MAC address and CRC code associated with the HVAC controller to theweb service 1550 during the registration process. The MAC address andCRC code are unique identifiers that may be used by the web service 1550to identify the HVAC controller 18 on the building's wireless network1538. In some cases, the HVAC controller 18 may transmit the MAC addressand CRC code associated with the HVAC controller 18 to the web service1550 during the registration process.

FIG. 79 shows an example of a first screen 2020 that may be displayed onthe user interface of the user's remote device 62 related topersonalizing the HVAC controller 18. It may be useful to note that atthis point in the installation setup process; the remote device 62 mayor may not be in communication with the HVAC controller 18 via the webservice 1550. In some cases, changes made to the HVAC controller 18through the application program code executed by the remote device 62are transmitted to the web service 1550, which in turn pushes down thechanges to the HVAC controller 18 via the building's wireless network1538. If the HVAC controller 18 loses connection with the web service1550, the web service 1550 may buffer any changes or modifications tothe HVAC controller 18. The web service 1550 may be programmed totransmit the buffered changes or modifications to the HVAC controller 18over the second wireless network 1538 upon restoration of the networkconnection between the HVAC controller 18 and the web service 1550.While in other cases, changes made via the application program code maybe transmitted from the remote device 62 to the HVAC controller 18,without the intervening web service 1550.

In some cases, as shown in FIG. 79, screen 2020 may include a firstlabel 2022 identifying the current phase of the setup process. In thisexample, first label 2022 identifies the current phase of the setupprocess as “Personalize.” Additionally, screen 2020 may include a brieftext string 2024 that identifies the current step of the personalizationphase. For example, as shown in FIG. 79, the brief text string 2024identifies the current step of the connection phase as “Personalize YourThermostat.” A user message 2026 may be displayed on screen 1900. Insome cases, user message 2026 may include additional information orinstructions about the current step of the personalization phase. Insome cases, screen 2020 may also include icons 2028 a-2028 d identifyingeach of the four phases of the setup process, which in this exampleinclude “install”, “configure”, “connect” and “personalize”. Inaddition, the icon 2028 d identifying the current phase of the setupprocess may be grayed-out, bolded, or otherwise highlighted to visuallyindicate to the user that it is the current phase of the setup process.Once a phase of the setup process is complete, the icon(s) 2028 a-2028 dmay include a dot or a checkmark in a corner of the icon to indicatethat the phase has been completed. For example, as shown in FIG. 79,icons 2028 a-2028 c corresponding to the installation phase, theconfiguration phase, and the connection phase of the setup process eachinclude a checkmark indicating to the user that those phases of thesetup process are complete. In some cases, screen 2020 may include athermostat icon 2030 indicating to the user that the HVAC controller 18is connected to the remote device 62 and/or to the web service 1550. Theuser may initiate the personalization process by selecting 2032 labeled“start personalizing” provided at the bottom of screen 2020.

Selection of button 2032 labeled “start personalizing” provided onscreen 2020 may cause the application program code to display the nextscreen 2040, shown in FIG. 80, in the sequence of screens related topersonalizing the HVAC controller 18. As shown in FIG. 80, screen 2040can include a first label 2042 that identifies the current phase of thesetup process. In this example, first label 2042 identifies the currentphase of the setup process as “Personalize.” A status bar indicator 2044may also be provided that shows the current status of thepersonalization phase. In addition, screen 2040 may include a brief textstring 2046 identifying the current step of the personalization phase.For example, as shown in FIG. 80, the brief text string 2046 identifiesthe current step of the personalization phase as “Personalize.” A usermessage 2048 may also be displayed on screen 2040. In this example, theuser message 2048 may prompt the user to name and identify the locationof the HVAC controller 18. Screen 2040 may include a first text entrybox 2050 labeled “Location Name” for receiving and accepting thelocation of the HVAC controller 18 from a user. A second text entry box2052 labeled “Thermostat Name” may be displayed for receiving andaccepting a thermostat name from a user. Selection of button 2054labeled next may cause the application program code to display anotherscreen in the sequence of screens related to personalizing the HVACcontroller 18.

FIG. 81 shows an example screen 2060 through which a user may registerthe HVAC controller 18 with the web service 1550 as part of thepersonalization phase of the installation setup process. As shown inFIG. 81, screen 2060 can include a first label 2062 that identifies thecurrent phase of the setup process. In this example, first label 2062identifies the current phase of the setup process as “Personalize.” Astatus bar indicator 2064 may also be provided that shows the currentstatus of the personalization phase. In addition, screen 2060 mayinclude a brief text string 2066 identifying the current step of thepersonalization phase. For example, as shown in FIG. 81, the brief textstring 2066 identifies the current step of the personalization phase as“Register.” A user message 2068 may also be displayed on screen 2040. Inthis example, user message 2068 may prompt the user to register the HVACcontroller with the web service 1550 by entering their address and timezone into the text entry fields 2070 displayed on screen 2060.Alternatively, in some cases, a button 2072 may be provided that, whenselected by a user, cause the application program code stored in thememory of the user's remote device to utilize location based services ofthe user's remote device to identify the location of the HVAC controller18 and automatically populate the fields 2070. This feature may be moreaccurate when the user is actually in the building near the location ofthe HVAC controller 18 during the registration process. In some cases,selection of button 2074 displayed on screen 2060 may cause theapplication program code to display the MAC address and/or CRC code ofthe HVAC controller 18 on the screen 2060 such that it may be viewed bythe user.

Selection of button 2076 labeled “next” may cause the application codeto accept the registration information from the user and transmit theregistration information to the web service 1550. Additionally, in somecases, selection of button 2076 labeled “next” provided on screen 2060may cause the application program code to display a pop-up or floatingwindow 2080 over screen 2060, as shown in FIG. 82. Window 2080 mayinclude a user message 2082 that informs the user that the HVACcontroller 18 is being registered with the HVAC controller 18. In somecases, window 2080 may also include an animated busy indicator 2084.

Upon successful completion of the registration process with the webservice 1550, the web service 1550 may transmit a message to theapplication program code stored in the memory of the user's remotedevice 62 confirming that the registration process was successfullycompleted. FIG. 83 shows an example of a screen 2090 that may bedisplayed by the application program code on the user interface of theremote device 62 upon successful registration of the HVAC controller 18with the web service 1550. Screen 2090 can include a first label 2092that identifies the current phase of the setup process. In this example,first label 2092 identifies the current phase of the setup process as“Personalize.” A status bar indicator 2094 may also be provided thatshows the current status of the connection phase. In addition, screen2090 may include a brief text string 2096 informing the user that theregistration process was successful. A user message 2098 may also bedisplayed on screen 2060. User message 2098 may provide additionalinformation or instructions about the current step of thepersonalization phase of the installation setup process. Selection ofbutton 2099 labeled “next” may cause the application code to displayanother screen related to the setup of the HVAC controller 18.

FIG. 84 shows an example of yet another screen 3000 that may bedisplayed on the user interface of the user's remote device 62 relatedto personalizing the HVAC controller 18. It may be useful to note thatat this point in the installation setup process; the HVAC controller 18may be connected to the web service 1550 and can be controlled via theweb service 1550 and/or via the application program code executed by theuser's remote device 62. In some cases, screen 3000 may include a firstlabel 3002 identifying the current phase of the setup process. In thisexample, first label 3002 identifies the current phase of the setupprocess as “Finished.” Additionally, screen 3000 may include a brieftext string 3006 that notifies the user that the setup process iscomplete. A user message 3008 may be displayed on screen 3000. In somecases, user message 3008 may include additional information orinstructions about the phase of the installation setup process. In thisexample, user message 3008 confirms that the HVAC controller 18 isinstalled and connected. In some cases, screen 3000 may also includeicons 3010 a-3010 d identifying each of the four phases of the setupprocess, which in this example include “install”, “configure”, “connect”and “personalize”. Once the installation setup process is completed,each of the icons 3010 a-3010 d may include a dot or a checkmark in acorner of the icon to indicate that the phase has been completed, asshown in FIG. 84. In some cases, screen 3000 may include a thermostaticon 3012. In some cases, the thermostat icon 3012 may display a currenttemperature reflective of a measure of the current temperature receivedfrom the HVAC controller 18. Additionally, in some cases, screen 3000may also include an icon 3016 representing the user's remote device 62to indicate that the HVAC controller 18 is also in communication withthe remote device 62. Selection of button 3018 labeled “finish” may endthe installation setup process.

FIG. 85 shows an example of a confirmation screen 3020 that may bedisplayed on the display of the user interface of the HVAC controller 18upon successful completion of the installation setup process. As shownin FIG. 85, screen 3020 may include a confirmatory user messageconfirming successful completion of the installation setup process.Additionally, in some cases, the HVAC controller 18 may be configured toglow and/or make an audible sound indicative of successful completion ofthe installation setup process. Upon successful completion of theinstallation setup process, the user may begin to immediately use thenewly installed HVAC controller.

In some cases, the application program code previously downloaded andstored in the memory of the user's remote device 62 may include a tourto facilitate a user's understanding of how to use the newly installedHVAC controller. In one example, the tour may include a video based tourthat the user may access and view through the user interface of theirremote device 62. For example, the tour may include a link that mayactivate a short video either embedded within the application programcode and stored in the memory of the user's remote device 62 or a linkto a video hosted by an external website such as, for example, YOUTUBE(www.youtube.com). The video-based tour may provide an overview ofselected functions of the thermostat. Upon viewing the video, a usershould better understand how to utilize the selected functions.

In some instances, the tour may be contained within the applicationprogram code, and may include a task-based tutorial that may guide auser through a series of tasks or steps related to one or morethermostat functions that are to be completed by the user. Aftersuccessful completion of the series of tasks or steps, the user shouldbe able to independently utilize the selected function of thethermostat. Non-limiting examples of the selected thermostat functionsthrough which the tour or task-based tutorial may guide a user include:changing a temperature setpoint; selecting an appropriate geofence;creating a custom geofence; creating a customized one-touch action macroor shortcut; creating a user profile; viewing performance logs; changingalert timers, etc.

FIG. 86A is a schematic block diagram of an illustrative mobile device4100 that may be used in programming an HVAC controller 4102. It will beappreciated that the mobile device 4100 may be similar to thosedescribed previously, and may be considered as an example of the remotedevice 62 (FIG. 2). The mobile device 4100 may be a smartphone ortablet, but this is not required. In some instances, the HVAC controller4102 may be considered as being an example of the HVAC controller 18(FIG. 1). The illustrative mobile device 4100 includes a touch screendisplay 4104 that is configured to display information and to permit auser to enter information. A network connection 4106 is configured tocommunicate with a remote server 4108 that is itself in operativecommunication with the HVAC controller 4102. The illustrative mobiledevice 4100 includes a controller 4110 that is in operativecommunication with the touch screen display 4104 and the networkconnection 4106.

The controller 4110 of the mobile device 4100 is configured to displayone or more screens on the touch screen display 4104 of the mobiledevice 4100 and to accept input from a user to remotely program one ormore functions of the HVAC controller 4102. In some embodiments, thecontroller 4110 of the mobile device 4100 is further configured toprovide a tour via the touch screen display 4104 of the mobile device4100 that guides a user though programming a first function of the oneor more functions of the HVAC controller 4102. Optionally, the tour mayinclude an instructional video. In some cases, the controller 4110 ofthe mobile device 4100 is further configured to output one or moreprogrammed functions of the HVAC controller 4102 to the remote server4108 via the network connection 4106.

In some cases, a tour prompts the user to take one or more programmingactions as the tour guides the user though programming a first function,such that the first function of the HVAC controller 4102 becomesprogrammed during the tour. Optionally, the tour provides additionalinformation to facilitate the user's understanding of the first functionand/or to aid the user in making an appropriate selection. In somecases, as will be illustrated in subsequent screen shots, the tourincludes a user prompt superimposed over an underlying screen, whereinthe underlying screen is one of the one or more screens used to programthe one or more functions of the HVAC controller 4102.

In some embodiments, the controller 4110 of the mobile device 4100requires the tour to be run for the first function before allowingprogramming of a second function of the one or more functions of theHVAC controller 4102. In some cases, the tour displays a sequence of twoor more screens on the touch screen display 4104 of the mobile device4100 that guides the user though programming the first function of theone or more functions of the HVAC controller 4102. Illustrative butnon-limiting examples of first functions include how to check status,how to adjust the temperature, how to switch between heating and coolingmodes, how to switch from heating to off, how to switch from cooling tooff, how to switch from fan on to fan auto, how to switch from fan on tofan off, how to switch from fan auto to fan off, how to enablegeo-fencing, how to adjust geo-fencing settings, how to create one touchmacros and how to use one touch macros.

FIG. 86B is a schematic block diagram of an illustrative mobile device4200 that may be used in programming an HVAC controller 4102. It will beappreciated that the mobile device 4200 may be similar to thosedescribed previously, and may be considered as an example of the remotedevice 62 (FIG. 2). The mobile device 4200 may be a smartphone ortablet, but this is not required. In some instances, the HVAC controller4102 may be considered as being an example of the HVAC controller 18(FIG. 1). The mobile device 4200 includes a user interface 4204 that isconfigured to display information and to permit a user to enterinformation. A network connection 4206 is configured to communicate witha remote server 4108 that is itself in operative communication with theHVAC controller 4102. A memory 4208 is configured to store anapplication program. The mobile device 4200 includes a controller 4210that is in operative communication with the user interface 4204, thenetwork connection 4206 and the memory 4208.

In some embodiments, the application program, when executed by thecontroller 4210 of the mobile device 4200, enables a user to remotelyprogram one or more functions of the HVAC controller 4102 via the userinterface 4204 of the mobile device 4200 and to output one or moreprogrammed functions to the remote server 4108 via the networkconnection 4206. In some cases, the application program may also beprogrammed to provide a task based tutorial that, when activated,displays a series of two or more screens that prompt the user to takeone or more programming actions while guiding the user thoughprogramming a first function of the HVAC controller 4102, such that thefirst function of the HVAC controller 4102 becomes programmed.

In some cases, the task based tutorial provides additional informationto facilitate the user's understanding of the first function. In someinstances, the task based tutorial provides additional information toaid the user in taking appropriate programming actions. The task basedtutorial may include a user prompt superimposed over an underlyingscreen, wherein the underlying screen is one of one or more screens usedto remotely program the one or more functions of the HVAC controller4102 via the user interface 4204 of the mobile device 4200. Optionally,the controller 4210 of the mobile device 4200 requires the task basedtutorial to be run for the first function before unlocking a secondfunction of the one or more functions of the HVAC controller 4102.

FIG. 86C provides a schematic block diagram illustrating a server 4300.In some embodiments, the server 4300 may represent the external server66 (FIG. 1) and may in some cases be the same as the remote server 4108shown in FIGS. 86A and 86B. The illustrative server 4300 includes anetwork connection 4304 for connecting to a mobile device 4302 that islocated remote from the server 4300. The server 4300 includes a memory4306 that is configured to store an application program for a mobiledevice, such as the mobile device 4302. The application program may beconfigured to enable a user of the mobile device 4302 to remotelyprogram one or more functions of an HVAC controller 4310 and to outputone or more programmed functions. The HVAC controller 4310 may, forexample, be representative of the HVAC controller 18 (FIG. 1). Theapplication program is also configured to provide a task based tutorialthat, when activated, displays a series of two or more screens on themobile device 4302 that prompt the user to take one or more programmingactions while guiding the user though programming one or more functionsof the HVAC controller 4310. The illustrative server 4300 includes acontroller 4308 that is operatively coupled to the network connection4304 and the memory 4306. The controller 4308 is configured to uploadthe application program to the mobile device 4302 upon request.

In some cases, the task based tutorial of the application programprovides additional information to facilitate the user's understandingof the one or more functions and/or to aid the user in takingappropriate programming actions. In some embodiments, the task basedtutorial includes a user prompt superimposed over an underlying screen,wherein the underlying screen is one of one or more screens used toremotely program the one or more functions of the HVAC controller 4310.

In some cases, the user's successful completion of a first series oftasks or steps related to a first selected thermostat function or groupof functions may cause the application program code to provide access toat least a second series of tasks or steps related to a second functionor group of functions that are different from the first series of tasksor steps. The second series of tasks or steps may be more advanced thanthe first series of tasks or steps. The user may continue to utilize thetask based tutorial within the application program code to explore andaccess different features of their thermostat. In some cases, the usermay exit the task-based tutorial at any time through selection of anappropriate button or icon displayed on the user interface for thatpurpose. In some cases, the user may be granted access to certainfunctions of the thermostat only after a series of tasks or stepsrelated to the selected function is successfully completed by the user.In use, the user may activate the task-based tutorial at any time byselecting an appropriate icon or button on the user interface to unlockor gain access to a selected function. In many cases, the applicationprogram code may recognize that a selected thermostat function has notbeen unlocked or utilized by the user, and will display an appropriatebutton or icon for accessing the task based tutorial. Upon activation ofthe task-based tutorial by the user, the application program code maydisplay one or more screens that may guide a user through a series oftasks or steps related to the selected function to which the userdesires to utilize. After completing a series of tasks or steps relatedto the selected function, the selected function may become accessible tothe user. The user may then close the task based tutorial throughselection of an appropriate icon or button.

FIG. 86D shows a first set of screens 4000 a-4000 d that may bedisplayed on the user interface of a user's remote device 62 by a taskbased tutorial contained within application program code executed by theuser's remote device 62. As shown in FIG. 86D, screens 4000 a-4000 drelate to selecting an HVAC operational mode (e.g. heating or cooling)and then selecting a desired temperature setpoint for the selected HVACoperational mode. Each of the screens may include a user prompt 4008a-4008 d that may prompt or instruct a user to take a desired action tocomplete a least a first step in a series of steps displayed by the taskbased tutorial related to the selected function. The user prompt 4008a-4008 d may include additional information that may facilitate theuser's understanding of the selected function and which, in some cases,may aid the user in making an appropriate selection. In some cases, asshown in FIG. 86D, the user prompt 4008 a-4008 d may include anindicator 4012 a-4012 d that indicates or visually guides a user toselect an appropriate icon or button for completing a selected step, butthis is not required. Successful completion of the steps displayed inthe first set of illustrative screens 4000 a-4000 d may cause the taskbased tutorial to display a second set of screens relating to adifferent or more advanced thermostat function.

FIG. 86E show a second set of one or more screens 4020 a-4020 e that maybe displayed on the user interface of a user's remote device 62 by atask based tutorial contained within the application program codeexecuted by the user's remote device 62. As discussed herein, the secondset of screens may be displayed upon successful completion of one ormore tasks or steps displayed in a first set of screens. In some cases,the second selected function may be unrelated to the first selectedfunction. However, in other cases, the second set of screens may guide auser through a series of tasks or steps related to more advancedfeatures of the first selected function.

As shown in FIG. 86E, the second set of screens 4020 a-4020 e guide auser through customizing or programming a one-touch macro. Each of thescreens 4020 a-4020 e may include a user prompt 4028 a-4028 e that mayprompt or instruct a user to take a desired action to complete a least afirst step in a series of steps displayed by the task based tutorialrelated to the selected function. The user prompt 4028 a-4028 e mayinclude additional information that may facilitate the user'sunderstanding of the selected function and which, in some cases, may aidthe user in making an appropriate selection. In some cases, as shown inFIG. 86E, the user prompt 4028 a-4028 e may include an indicator 4032a-4032 e that indicates or visually guides a user to select anappropriate icon or button for completing a selected step, but this isnot required. Successful completion of the steps displayed in the firstset of illustrative screens 4020 a-4020 d may cause the task basedtutorial to display yet another set of screens relating to a yet anotherthermostat function. It will be generally understood that the user mayexit the task based tutorial and subsequently, return to the task basedtutorial at any time to learn about and/or master other thermostatfunctions.

Through the application program code on the user's remote device, theuser may register their HVAC controller 18 with a selected HVACcontractor. In some cases, through the application program code, theuser may elect to give remote access to their HVAC controller 18 to theselected HVAC contractor so that the HVAC contractor may remotelymonitor the performance of the user's HVAC system and/or energy usage,recommend certain actions for improving the performance of their HVACsystem and/or for increasing the energy efficiency of their HVAC system,display energy usage reports, send reminders to change filters and/orschedule routine maintenance, and/or inform the user about upcomingservice specials.

Referring back to FIG. 19D, it is contemplated that the user mayactivate a feature in the application program code for identifying andconnecting with an HVAC contractor through a selection of an appropriateoption 808 from a list of selectable options displayed on an optionsscreen 810 accessible through a home screen 800. Upon receivingselection of the option 808 labeled “Find a Contractor” from a user, theapplication program code may cause the user's remote device 62 todisplay at least a first screen, sometimes of a sequence of screens,related to identifying and connecting with an HVAC contractor.Illustrative screens relating to identifying and connecting with an HVACcontractor are shown in FIGS. 87-92. In one example, upon receivingselection of the option 808 labeled “Find a Contractor” from a user, theapplication program code may cause the user's remote device 62 todisplay an illustrative first screen 4060, shown in FIG. 87, that mayprompt a user to enter location information such as a city, state or zipcode or to select a location from a list of available locations 4068. Insome cases, the user's remote device may supply the location informationusing GPS data from a GPS unit of the remote device. Upon receivinglocation or location information data, the application code may displaya subsequent screen 4080, shown in FIG. 88, in a sequence of screensrelated to identifying and connecting with an HVAC contactor. The screen4080 displays a list of local HVAC contractors 4088 including theircontact information and sometimes consumer rating information, asapplicable. In some cases, the list of HVAC contractors may be orderedaccording to their location relative to the user's home, with thosecontactors located closest to the user's home being displayed at the topof the list. In other cases, the list of HVAC contractors may bedisplayed in an order according to their consumer ratings (number orstars given by previous consumers), with the highest rated HVACcontractors displayed at the top of the list. In still other cases, HVACcontractors currently offering new customer or service specials may beordered at the top of the list and/or may be highlighted.

In some cases, an HVAC contractor may offer remote monitoring services.The user may receive an invitation via email or through the messagecenter discussed above, which may invite the user to connect their HVACcontroller 18 to the HVAC contractor's monitoring service. Through thereceived invitation, the user may choose a monitoring program (e.g., afull or partial monitoring program) that best suits the user's needs andalso which may limit or grant a certain level of access to theassociated contractor for the HVAC system. Once a monitoring program hasbeen selected by the user, the user's HVAC controller 18 may beautomatically set up for monitoring by the selected HVAC contractor thatsent the invitation, and the user and contractor may have linkedaccounts via a remote server to facilitate the monitoring, schedulingand/or performance of maintenance checks, etc. Even after the user andcontractor are linked, the customer may have the ability to disconnectthe HVAC contractor from its HVAC system and/or HVAC controller (andcorresponding data and/or information sharing), which may allow the userto retain control of its HVAC system data and/or information.

Turning now to the specific examples provided in FIGS. 89-92, uponopening a message received from the HVAC contractor in the messagecenter, the application program code may display an invitation screen4090, shown in FIG. 89, displaying a user message including aninvitation to participate in monitoring services offered by the HVACcontractor. Selection of the button 4098 labeled “Next” or anotherappropriate button displayed on invitation screen 4090 may cause theapplication program code to display a subsequent screen 5000 in asequence of screens, shown in FIG. 90, which may prompt a user to selectone or more locations 5008 for which monitoring services are desired. Inaddition, screen 4090 may include another button 4096 that, whenselected by a user, may permit a user to decline or opt out of anymonitoring services provided by the selected HVAC contractor.

Upon receiving a selection of one or more locations 5008 for which theuser desires monitoring services, the application program code maydisplay screen 5016, shown in FIG. 91. Screen 5016 may display a usermessage prompting the user to confirm that they desire to provide remoteaccess to their HVAC controller 18. In addition, screen 5016 may includeat least a first selectable option 5020 that, when selected by the user,causes the application program code to transmit a message to theselected HVAC contract indicating that that the user has granted remoteaccess to their HVAC controller 18 and HVAC system. In some cases,screen 5016 may also include a button (not shown) that, when selected bya user, may permit a user to decline or opt out of any monitoringservices provided by the selected HVAC contractor.

FIG. 92 shows options screen 816 of FIG. 19D after the user hasconnected with an HVAC contractor to provide monitoring services. As canbeen seen in FIG. 92, an option 5028 labeled contractor monitoring hasbeen activated and is visible. Once activated, a user may select option5028 to connect to the remote HVAC contractor to view information anddata provided by the HVAC contractor including, but not limited to:notifications, reminders, scheduled appointments, energy usageinformation, HVAC system performance data, recommended actions, and/orthe like.

In one example, an HVAC controller 18 may include a memory, a wirelesstransceiver for wirelessly sending and receiving data over a building'swireless local area network, and a controller configured to execute aprogram code stored in the memory for connecting the HVAC controller 18to the wireless local area network via the wireless transceiver and todetect if a mobile wireless device is currently connected to andrecognized by the wireless local area network. The controller mayfurther be configured to change at least one operational parametersetting of the HVAC system depending on whether the mobile wirelessdevice is currently connected to and recognized by the wireless localarea network or not.

In some cases, the HVAC controller may switch to an energy savingssetting when the occupants of the building are away (unoccupied mode),and then switch back to a comfort setting when the occupants of thebuilding return or are present (occupied mode). In some cases, the HVACcontroller 18 may be configured to execute a program code stored in thememory for detecting if a user's mobile wireless device, having a uniqueidentifier, is currently enrolled in a local wireless network byrepeatedly broadcasting a query for the mobile wireless device over thewireless local area network. The HVAC controller 18 may be configured tochange at least one operational parameter setting of the HVAC system(e.g. a temperature set point) to a comfort setting in accordance withan occupied mode upon receiving a response from the mobile wirelessdevice to the query indicating occupancy of the building, and/or changeat least one operational parameter setting of the HVAC system (e.g. atemperature set point) to an energy saving setting in accordance with anunoccupied mode upon not receiving a response from the mobile wirelessdevice to the query indicating the user is not present.

In another instance, the use of location signals from one or more cellphones or tablet computers which have enabled location services, mayallow the system to infer that a user will soon be home or is home andto adjust the temperature of the home with enough lead time to preparethe home for the user's arrival. The inference may, in some embodiments,include the requirement that the user appears to be moving toward thehome as opposed to merely being nearby for an extended period of time.Further, the one-touch macros discussed above may use the departure orexpected arrival of the user's mobile device as a trigger for aprogrammed action, such as adjusting the temperature set point.

In some cases, the application program code executed by the user'sremote device 62 may cause the remote device 62 to determine that theuser or, more specifically, that the user's remote device 62, hascrossed at least one or more proximity boundaries established relativeto the location of the HVAC controller 18 or another location. In othercases, the user's remote device 62 may transmit its location to a serveror the like, where the server may determine that the user's remotedevice 62 has crossed at least one or more proximity boundariesestablished relative to the location of the HVAC controller 18 oranother location.

In some embodiments, utilizing the physical location of a user's remotedevice 62 (such as a smartphone or tablet, for example) may provide moreaccurate information as to whether or not the user is at home. Thesedays, people tend not to leave their home without their smartphone andwill, in fact, make a special trip back home if they have inadvertentlyleft their smartphone. By using the physical location of the remotedevice 62, the HVAC controller 18 does not, for example, have to rely ona proximity sensor or the like to determine whether or not a user ishome at any particular time. While a proximity sensor can be used todetect motion and thus determine if someone is at home, it will beappreciated that a thermostat employing a proximity sensor for thispurpose may only determine a user is home if the user happens to walkthrough the particular hallway or room in which the thermostat islocated. If a user is home, but stays in a different room, thethermostat may mistakenly decide that the user is not home, simplybecause the user has chosen not to walk past the thermostat itself.Utilizing the position of the smartphone to determine the location ofthe user, and thus whether or not they are home, may provide morecomfort and more energy savings.

FIG. 93 is a schematic diagram of an illustrative use of geofencing incontrolling an HVAC system. A home 5030 may represent the home 2 (FIG.1). As shown, a first boundary, or geofence, 5032 may be defined aroundthe home 5030. It will be appreciated that the home 5030 may be a house,an apartment, a townhouse, a condominium or the like. A second boundary,or geofence, 5034 may be defined around the home 5030 at a greaterdistance than the first geofence 5032. While schematically drawn asconcentric circles, it will be appreciated that the first geofence 5032and/or the second geofence 5034 may have any desired shape. While thesecond geofence 5034 is drawn as encircling the first geofence 5032, insome instances, it is contemplated that the second geofence 5034 may atleast partially overlap regions of the first geofence 5032.

A mobile device 5036, representative of the remote device 62 (FIG. 2),typically has one or more techniques for determining its location. Forexample, the mobile device 5036 may determine its location via aself-contained GPS unit. In some embodiments, the mobile device 5036 maydetermine its location via triangulation of cell phone signals. If themobile device 5036 is programmed with the details of a geofence such asthe first geofence 5032 and/or the second geofence 5034, the mobiledevice 5036 may determine when it crosses the first geofence 5032 and/orthe second geofence 5034, and in what direction, and can transmit thatinformation to a remote server 5038. In some embodiments, the mobiledevice 5036 may simply transmit its location from time to time to theremote server 5038, and the remote server 5038 may determine when themobile device 5036 crosses the first geofence 5032 and/or the secondgeofence 5034, and in what direction.

FIG. 94 is a schematic block diagram of an illustrative mobile device5036, which may be similar to mobile devices described herein and whichmay, for example, represent the mobile device 62 (FIG. 2). In somecases, the mobile device 5036 is a smartphone. The illustrative mobiledevice 5036 has location services such as GPS or cell phone signaltriangulation that can determine the location of the mobile device 5036.The illustrative mobile device 5036 includes a user interface 5100 and amemory 5102 for storing two or more predetermined geo-fences (such asfirst geofence 5032 and second geofence 5034), each defining a differentsized region about the home 5030 (FIG. 93) of a user of the mobiledevice 5036. In some embodiments, a first one of the two or morepredetermined geo-fences, such as the first geofence 5032, defines afirst sized region and a second one of the two or more predeterminedgeo-fences, such as the second geofence 5034, defines a second sizedregion, and the second sized region has an area that is at least 25%,50% or 100% larger than an area of the first sized region.

A controller 5104 of the illustrative mobile device 5036 is operativelycoupled to the user interface 5100 and the memory 5102. In the exampleshown, the controller 5104 is configured to accept a selection of one ofthe two or more predetermined geo-fences via the user interface 5100 andto report out when the location of the mobile device 5036 crosses theselected one of the two or more predetermined geo-fences to a remotedevice, such as a remote server. In some cases, the controller 5104 maybe further configured to accept a selection of another one of the two ormore predetermined geo-fences via the user interface 5100, and to reportout when the location of the mobile device 5036 crosses the selectedanother one of the two or more predetermined geo-fences to a remotedevice, such as a remote server. In some cases, the controller 5104 isconfigured to not report out when the location of the mobile device 5036crosses unselected ones of the two or more predetermined geo-fences.

In some embodiments, the remote device is a remote server 5038, and thecontroller 5104 is configured to report when the location of the mobiledevice 5036 crosses the selected one of the two or more predeterminedgeo-fences to the remote server 5038 via a wireless communication port.In some instances, the remote server 5038, in response to receiving areport that the location of the mobile device 5036 crossed the selectedone of the two or more predetermined geo-fences, notifies an HVACcontroller 5040 (FIG. 93) in the home 5030 of the user of the mobiledevice 5036 to change a setting. In some cases, the setting includes atemperature set point or a lighting setting. The change in the settingmay be reported back to the mobile device 5036, and the controller 5104of the mobile device 5036 may be configured to display the changedsetting on the user interface 5100 of the mobile device 5036.

FIG. 95 is a schematic block diagram of an illustrative buildingautomation system 5042 that includes a memory 5044 and a controller 5046that is operably coupled to the memory 5044. The memory 5044 stores ageofence that defines a region about the user's building. The controller5046 is configured to identify when a user's mobile device 5036 crossesthe geo-fence, and in response, cause an adjustment to a temperature setpoint of the building automation system. In some embodiments, thecontroller 5046 is also configured to automatically increase the size ofthe region of the geo-fence if the controller 5046 receives anindication (e.g. from a user) that the geo-fence is too sensitive, andto automatically decrease the size of the region of the geo-fence if thecontroller 5046 receives an indication (e.g. from a user) that thegeo-fence is not sensitive enough.

In some embodiments, the indication (e.g. from the user) that thegeo-fence is too sensitive is in response to a query presented to theuser. In some cases, the indication from the user that the geo-fence istoo sensitive is in response to a query presented to the user via themobile device 5036. In some instances, the indication from the user thatthe geo-fence is too sensitive is in response to a query presented tothe user via a web page. Optionally, the indication from the user thatthe geo-fence is not sensitive enough is in response to a querypresented to the user. In some cases, the indication that the geo-fenceis too sensitive or not sensitive enough is based on historical HVACdata, such as the length of times and spacing between the occupied andunoccupied modes.

FIG. 96 is a schematic block diagram of an illustrative mobile device5200 having location services for determining a location of the mobiledevice 5200. The mobile device 5200 includes a user interface 5202 and amemory 5204. The memory 5204 stores a first geofence (such as firstgeofence 5032) that defines a first region about a user's building and asecond geofence (such as second geofence 5034) that defines a secondregion about the user's building, wherein the second region is differentthan the first region. The memory 5204 may also store a programmablegeo-fence schedule that assigns the first geo-fence to a first scheduledtime period and assigns the second geo-fence to a second scheduled timeperiod. A controller 5206 is operatively coupled to the memory 5204 andthe user interface 5202. The controller 5206 is configured to activatethe first geo-fence during the first scheduled time period(s), and toidentify when the mobile device 5036 crosses the first geo-fence duringthe first scheduled time period(s). The controller 5206 is furtherconfigured to activate the second geo-fence during the second scheduledtime period(s), and to identify when the mobile device 5036 crosses thesecond geo-fence during the second scheduled time period(s). Thecontroller 5206 may report to a remote device 5208 such as a remoteserver when the location of the mobile device 5036 crosses the firstgeo-fence during the first scheduled time period(s) and when thelocation of the mobile device 5036 crosses the second geo-fence duringthe second scheduled time period(s).

In some embodiments, the remote device 5208 is a remote server, and thecontroller 5206 is configured to report when the location of the mobiledevice 5036 crosses the first geo-fence during the first scheduled timeperiod(s) and when the location of the mobile device 5036 crosses thesecond geo-fence during the second scheduled time period(s). The remoteserver 5208, in response to receiving a report that the location of themobile device 5036 crossed the first geo-fence during the firstscheduled time period(s) or that the mobile device crossed the secondgeo-fence during the second scheduled time period(s), may notify abuilding automation controller 5212 in the user's building 5214 tochange a setting. In some embodiments, the first scheduled timeperiod(s) corresponds to a weekday, and the second scheduled timeperiod(s) corresponds to a weekend day. Alternatively, the firstscheduled time period(s) may correspond to a first part of a day, andthe second scheduled time period(s) may correspond to a second part ofthe same day. These are just some examples.

In some cases, and to keep things relatively simple, a geofence settingmay be offered to the user to select between a smaller proximityboundary and a larger proximity boundary. By manipulating the geofencesetting, the user may select between the smaller proximity boundary andthe larger proximity boundary. Selection of the small proximity boundarymay increase the sensitivity of the HVAC controller 18 to the user'slocation, as determined by the user's remote device 62, a server and/orthe HVAC controller 18.

FIG. 97 shows a geofence settings menu screen 5050 that includes a radiobutton or other selectable option 5056 that permits a user to choosebetween a small proximity boundary (e.g. smaller radius geofence) and alarge proximity boundary (e.g., larger radius geofence) that may bedisplayed on the user interface of the remote device 62 by theapplication program code. In one example, the smaller proximity boundarymay have a radius extending approximately 500 feet (approximately 152.4meters) outward from a predetermined location such as, for example, thelocation of the HVAC controller 18. The larger proximity boundary mayhave a radius extending approximately seven miles (or more) outward fromthe same predetermined location. These are just examples. It will begenerally understood that the smaller and larger proximity boundariescan correspond to a radius of any suitable distance, as desired. In somecases, the area of the larger proximity boundary may be at least 25%greater than the area of the smaller proximity boundary, but this isjust one example.

In some instances, a user may select the size of the proximity boundarybased on their schedule. For example, a user may select a largerproximity boundary on days (e.g. weekdays) in which they typicallycommute to a secondary location (e.g. work), and may select a smallerproximity boundary for use on their non-commuting days (e.g. weekends)where they may remain relatively closer to their home. In anotherexample, a user may select a larger proximity boundary for use during afirst period of time (e.g. work hours such as 8:00 AM-5:00 PM), and asmaller proximity boundary for use during a second period of time (e.g.home hours such as 5:00 PM-8:00 AM). More generally, it is contemplatedthat a plurality of proximity boundaries may each be assigned to a timeslot in a proximity boundary “schedule”, and thus the currently activeproximity boundary at any given time may change during different timesof a day, a week or other time periods.

In some cases, the temperature inside of the space controlled by theHVAC Controller may be more tightly controlled (e.g. within one degreeof a control setpoint or less) to provide good comfort when the user isexpected to be home, and may be allowed to drift by a predeterminedamount to provide greater energy efficiency when the user is notexpected to be home. In some cases, the allowed drift from the comfortsetting may be set depending on the size of the selected proximityboundary. For example, a larger temperature drift may be allowed if alarger proximity boundary is selected. That is, it may take a userlonger to reach home after crossing the proximity boundary when theproximity boundary is larger, and thus the HVAC system may have moretime to recover from a larger temperature drift and reach the comforttemperature before the user arrives. When so provided, selecting alarger proximity boundary may result in more energy savings (via alarger allowed drift).

In some cases, the proximity boundary may be established relative to thelocation of the HVAC controller 18 such as, for example, the user'shome. In one example, when the user leaves the proximity boundary,sometimes as determined by the application program code executed by theuser's remote device 62, the user's remote device 62 may cause the HVACcontroller 18, either directly or indirectly, to adjust the temperaturesetpoint and/or any other applicable operating parameters (e.g. lights,ventilation, humidification/dehumidification, etc.) according to one ormore “away” settings. Conversely, when the remote device 62 detects thatthe user has re-entered the proximity boundary, the user's remote device62 may cause the HVAC controller, either directly or indirectly, toadjust the temperature setpoint and/or any other operating parametersaccording to one or more at “home” settings.

In some cases, a proximity boundary may be established relative to auser's secondary location such as, for example, the user's workplace, aschool, or some other location. Using a proximity boundary that isdefined relative to a user's secondary location may be particularlyappropriate when the user's secondary location is located a relativelyshort distance away from the user's home. In this example, when theremote device 62 detects that the user has entered the proximityboundary at the user's secondary location, the user's remote device 62may cause the HVAC controller, either directly or indirectly, to adjustthe temperature setpoint and/or any other operating parameters accordingto one or more “away” settings. Conversely, when the remote device 62determines that the user has left the proximity boundary at the use'ssecondary location, the user's remote device 62 may cause the HVACcontroller, either directly or indirectly, to adjust the temperaturesetpoint and/or any other operating parameters according to one or more“home” settings.

In some instances, the proximity boundary at the user's secondarylocation may become active only at scheduled time periods (e.g. duringwork hours). In some cases, such as when the user's secondary locationis relatively close to the user's home, the HVAC controller may allowthe temperature (and/or other environmental parameter) inside of thehome to drift by a predetermined amount that cannot be fully recoveredfrom in the time that it would normally take the user to travel from theuser's secondary location to the user's home. However, by referencing aprogrammed schedule, such as a user's work schedule, and by assuming theuser will remain at the user's secondary location during the programmedwork schedule, the HVAC system may obtain more energy savings than ifthe user's schedule were not taken into account. If the user were toleave the user's secondary location early, the user's remote device 62may cause the HVAC controller, either directly or indirectly, to beginadjusting the temperature and/or any other operating parametersaccording to one or more “comfort” settings. In some cases, however, the“comfort” setting may not be achieved by the time the user arrives athome.

In some instances, a household may include more than one person, such asa husband, a wife and two children. Each person may have a remote device62 (e.g. smartphone) that executes application program code that causesthe remote device 62 to determine that the corresponding user, or morespecifically, that the corresponding user's remote device 62, hascrossed one or more proximity boundaries established relative to alocation such as home, work, school, etc. A household account may beestablished that links each of the remote device 62 associated with ahousehold to the household account. Each remote device 62 may reportwhen the corresponding remote device 62 crosses a particular proximityboundary to a master device, such as a server. The master device (e.g.server) may be in communication with the HVAC controller of thehousehold, a security system controller of the household, a lightingsystem controller of the household, and/or any other suitable controlleras desired. The master device (e.g. server) may be programmed todetermine when all (or some subset) of the household members havedeparted from the household and crossed one or more correspondingproximity boundaries. Each user may have the same or different activeproximity boundaries. When this occurs, the server may instruct the HVACcontroller to assume a more energy efficient setpoint. In some cases,the master (e.g. server) may also instruct a security system controllerto arm the security system and lock all of the doors, and may instruct alighting controller to turn off the lights.

In some cases, a different proximity boundary may be set for each of theremote devices 62 of the household. For example, if the husband worksabout 20 miles (about 32.19 kilometers) from the household and the wifeworks about 10 miles (about 16.09 kilometers) from the household, theremote device 62 of the husband may use a proximity boundary that has aradius of about 15 miles (about 24.14 kilometers) from the household,and the remote device 62 of the wife may use a proximity boundary thathas a radius of about 7 miles (about 11.27 kilometers) from thehousehold. If the kids attend a school that is about 6 miles (about9.656 kilometers) from the household, the remote devices 62 of the kidsmay use a proximity boundary that has a radius of about 4 miles (about6.437 kilometers) from the household. These are just examples.

Alternatively, or in addition, the remote device 62 of each householdmember may use a different proximity boundary relative to a secondarylocation such as, for example, the member's workplace, school, or otherlocation, as described above. Moreover, it is contemplated thatdifferent proximity boundaries may be assigned to different time slotsof a proximity boundary “schedule” that may be associated with aparticular household member.

In some cases, each household member may set a preferred comfortsetpoint. The system may be programmed to set the comfort setpoint ofthe HVAC system based on which household member crosses a correspondingproximity boundary and is expected to return first. If at a later time,another household member crosses a corresponding proximity boundary andis expected to return, the system may set the comfort setpoint based ona combination of household members that are expected to be at thehousehold. For example, if the wife prefers a heating setpoint to be at74 degrees and the husband prefers a heating setpoint to be 72 degrees,the system may set the comfort setpoint to 74 degrees upon arrival ofthe wife, and when the husband arrives later, sets the comfort setpointto 73 degrees. The system may determine an appropriate setpoint based onthe particular combination of household members that are expected to behome. For example, the system may average the set points that areassociated with the household members that are expected to be home. Insome cases, the average may be a weighted average. In some cases, somehousehold members' preferences may have a higher priority over otherhousehold member's preferences. For example, the husband and wife'ssetpoint preferences may take priority over the kid's preferences.

In some instances, when a user leaves the household and crosses aproximity boundary, the system may require that the user remain acrossthe proximity boundary for a predetermined time period before activatingan energy savings setpoint in the household. Alternatively, or inaddition, when a user is returning to the household and crosses aproximity boundary, the system may require that the user remain acrossthe proximity boundary for a predetermined time period before activatinga comfort setpoint in the household. The proximity boundary used whenthe user leaves the household and the proximity boundary used when theuser returns to the household may be the same or different proximityboundaries. In one example, the proximity boundary used when the userleaves the household may have a larger radius than the proximityboundary used when the user returns to the household.

In some cases, the proximity boundary that is to be used may be learnedby the system. For example, location data from each household member maybe recorded, and geo patterns may be identified from the recordedlocation data. In some cases, the location data may be time stamped, andgeo patterns in both location and time may be identified. From this,suitable proximity boundaries may be identified and/or learned by thesystem. For example, if the geo pattern identifies that the husband goesto a common location (e.g. work) M-F from 8:00 AM-5:00 PM, the systemmay learn a proximity boundary that is between the household and thatlocation, perhaps at 60 percent of the distance from the household tothat location. Also, and in some cases, that learned proximity boundarymay only be activated on M-F. At the same time, if the geo patternidentifies that the kids go to a common location (e.g. school) M-F from7:30 AM-2:30 PM, the system may learn a proximity boundary between thehousehold and that location, perhaps at 60 percent of the distance fromthe household to that location. For more granularity, route informationmay be extracted from the geo patterns, and the learned proximityboundaries may be based, at least in part, on the route information. Forexample, a learned proximity boundary may be defined as not onlytraveling a specified distance from the household but also following anidentified route. If such an event occurs, the proximity boundary may bedeemed to have been “crossed”.

In some embodiments, an application program code, as discussed in detailherein, may cause the user's remote device 62 to launch a geofence setupwizard to aid a user in selecting an appropriate geofence. In othercases, a computing device (e.g. tablet, laptop, desktop) may access aweb-site or the like on a server, which may provide a geofence setupwizard to aid a user in selecting an appropriate geofence. In somecases, the geofence setup wizard may display one or more screens on thedisplay of a user interface that may guide a user through establishingan appropriate geofence suitable for their lifestyle. FIGS. 98-101 showexamples of different geofence setup screens that may be displayed onthe display of a user interface of a user's remote device 62 by ageofence setup wizard. In some cases, a user's response to a user querypresented on a first screen may determine the next screen displayed bythe geofence setup wizard. In other cases, the geofence wizard maydisplay a sequence of two or more screens in a predetermined order. Inthis example, the user may have the ability to skip any non-applicablescreens.

In some cases, the geofence setup wizard may display a first screen 5060that includes a first user query 5066 that queries a user about theirdaily commute, as shown in FIG. 98. The first screen 5060 may includeone or more selectable options 5070 for responding to the first userquery 5066. In a subsequent screen 5080, as shown in FIG. 99, thegeofence setup wizard may display a recommendation 5086 to the userbased on the user's response to the first user query recommending alarge geofence setting, a small geofence setting, a custom geofencesetting and/or establishing a geofence relative to the user's primarylocation (e.g. home) or secondary location (e.g. work or school). In theexample shown in FIG. 99, the geofence wizard displays a recommendation5086 recommending that the user select the small geofence setting on thesettings menu screen 5050 (FIG. 97) displayed by the application programcode. Additionally, the geofence wizard may display another screenincluding another user query that queries the user about the frequencyof their commute. For example, the geofence wizard may display a screen5090, as shown in FIG. 100, which asks or prompts a user to select thedays on which they typically commute to work or school from a list ofselectable options 5096 corresponding to each of the days of the week.The geofence wizard may then display a screen 6000 that may include auser query 6006 that may ask the user if they would like to use adifferent geofence for any unselected days. Screen 6000 may include afirst option 6012 a labeled “yes” and a second option 6012 b labeled“no” for responding to the user query 6006. Selection of a differentgeofence on days in which the user does not typically commute to asecondary location such as work or school may be particularlyappropriate for a user that commutes a distance greater than about 24kilometers (about 14.91 miles) and that stays relatively close to homeon their non-commuting days. This feature may allow a user to select asmaller geofence and apply it to any non-selected days on which the useris typically not travelling to and from the secondary location. Theseare just some examples.

Alternatively, or in addition to the various embodiments describedherein, the proximity boundary(s) may be customized by the user and mayhave any shape and/or size that more appropriately reflects the user'slocal and/or daily travel habits. For example, at least one proximityboundary may be configured by the user to have the same general sizeand/or shape of the city in which their home or workplace is located.FIG. 102, for example, shows another view of a settings menu screen 6060that permits a user to select a custom boundary option. Selection of thecustom boundary option 6066 by a user may cause the application programcode to display a subsequent screen 6070, as shown in FIG. 103, on thedisplay of the user interface that may permit a user to configure acustom proximity boundary. As shown in FIG. 103, the application programcode may display an area map 6076 on the user interface. The user may beprompted to draw a proximity boundary on the area map 6076 by draggingtheir finger or a stylus on the area map 6076. In some embodiments, ifdesired, the user may zoom in or zoom out on the area map 6076,depending on how big they want their customized proximity boundary tobe, by performing a pinch gesture somewhere on the user interface. Theapplication program code may accept the user's customized proximityboundary and may store the custom proximity boundary in the memory ofthe user's remote device 62. Again, the user may choose to establish theproximity boundary relative to the location at which the HVAC controlleris located, typically their home, and/or a secondary location such as aworkplace or school. When the user's remote device 62 determines thatthe user has crossed the selected proximity boundary, the user's remotedevice 62 may send a command to the HVAC controller 18, either directlyor indirectly, to adjust the temperature setpoint in accordance with theuser's selected settings such as for example, the user-specified “athome settings” or “away settings” depending upon if the user is enteringor leaving the selected boundary.

In some embodiments, the user may want to be able to establish a customproximity boundary that is based upon a radius from their home or otherbuilding. FIGS. 104-106 provide illustrative screens that may bedisplayed on the user's remote device 62. Starting in FIG. 104, a “setmy geo fence” screen 6100 may be displayed. In the example shown, a map6102 is provided, with a location marker 6104 showing the presentlocation of the user's remote device 62. In some instances, setting ageofence boundary is most accurate when the user, or more accurately,the user's remote device 62, is located at the home or other buildingthat is to be the center of the proximity boundary. In some instances,while not illustrated, it is possible that a home address, previouslyentered when initially setting up the HVAC controller 18, may be used tolocate the location marker 6104 if the user is away from home or whenthe location services of the remote device 62 are turned off whensetting or adjusting a proximity boundary. In some embodiments, if thehome address was not previously entered, the user's remote device 62 mayprompt the user to enter their home address so it can be used to locatethe location marker 6104.

The illustrative screen 6100 includes a sizing marker 6106, shown hereas a black dot. As the user moves the sizing marker 6106 inwards towardsthe location marker 6104, a boundary 6108 will become smaller in radius.As the user moves the sizing marker 6106 away from the location marker6104, the boundary 6108 will become larger in radius. It will beappreciated that the boundary 6108, as illustrated, becomes a newproximity boundary. While drawn as a circle, in some instances theboundary 6108 may take any other predetermined and/or user-definedshape. For example, if the user lives next to a large body of water suchas an ocean, there is little need for the boundary 6108 to pass over thewater. In such circumstances, perhaps a rectangular boundary 6108 may bemore useful. In some cases, the boundary 6108 may be a polygon, and theuser may add a vertex to the polygon by touching a location on theboundary 6108 where a vertex should be added. Another sizing marker maybe automatically added at that newly created vertex. Once added, theuser may drag the new sizing marker to any desired location, which maychange the shape of the boundary 6108. With multiple vertices andcorresponding sizing markers, the user may easily define nearly anydesired shape for the boundary 6108 about the location marker 6104.

In example shown in FIG. 104, a pop up screen 6110 instructs the userhow to drag the sizing marker 6106 in one direction or another in orderto resize the boundary 6108. In some instances, rather than dragging thesizing marker 6106, the boundary 6108 may be displayed on the screen6100, and a user may utilize a pinch gesture somewhere on the screen6100 to make the boundary 6108 smaller or larger, similar to how a usercan resize a digital photo, or zoom in or out on a map. In someembodiments, especially if the user is not at home when setting oradjusting a proximity boundary about the home, the screen 6100 maydisplay a map of the user's general area, and superimpose the boundary6108 on the map. The user may use a finger on the screen 6100 to movethe map around until the boundary 6108 is generally centered on theirhome. It will be appreciated that in doing so, it may be useful to zoomout, using a pinch gesture, to generally locate an area on the map, thenzoom in, again using a pinch gesture, to fine tune the location of theuser's home before zooming out again to an appropriate distance so thatthe user can locate the boundary 6108.

In some instances, as illustrated for example in FIG. 105, the screen6100 may display a pop up screen 6112 that reminds the user that theyshould be as close to home, or more accurately as close as possible tothe HVAC controller 18, when adjusting the boundary 6108. In someembodiments, however, as described above, the user may be not use thelocation services on the remote device to center the geofence, butrather may be able to use their previously entered home address, newlyadd their home address, or graphically locate their home on the map6102, as desired. FIG. 106 provides a view of the screen 6100 withoutany pop up screens, so that the user may clearly see their newly setproximity boundary 6108.

In some cases, more than one remote device 62 may be configured tocommunicate with and/or control the HVAC controller 18. Each remotedevice 62 may be associated with a unique user profile stored in thememory of the HVAC controller 18 and/or at a remote server to which boththe HVAC controller 18 and the user's remote device 62 are connected. Anexample of such a server is Honeywell's TOTAL CONNECT™ server. Eachremote device 62 may be configured to transmit a message to the serverindicating that a proximity boundary has been crossed as the users,along with their respective remote devices 62, enter and/or exit thearea defined by a proximity boundary. As discussed herein, the proximityboundary may be defined relative to the location of the HVAC controller(e.g. the user's home) or a user's secondary location and may becustomized by the user. In some cases, the server may be programmed totransmit a command to the HVAC controller 18 to adjust the temperaturesetpoint and any additional operating parameters according to an “away”setting upon determining that a last user in a group of users is nolonger within the area defined by the proximity boundary upon receivingan indication from the last user's remote device 62 that the proximityboundary has been crossed. Conversely, the server may be programmed totransmit a command to the HVAC controller 18 to adjust the temperaturesetpoint and any additional operating parameters according to an at homesetting upon receiving an indication from a user's remote device 62 thatthe proximity boundary has been crossed by a first user of a group ofusers, indicating that the first user is now within the area defined bythe proximity boundary.

Alternatively or additionally, in certain cases, such as where two ormore remote devices each have a unique profile, the HVAC controller 18or the server may be programmed to include a set of hierarchical rulesfor determining which individual user profile takes precedence forcontrolling the HVAC system when both of the remote devices 62 are beingactively used by a user and at least one user is determined to be withinan area defined by a predetermined proximity boundary. Other methodsemploying a proximity boundary or other method of detecting a user'spresence or approaching presence are shown and described in U.S. PatentPublication No. 2012/0268766, filed on Jul. 26, 2012 and U.S. PatentPublication No. 2014/0045482, filed on Aug. 7, 2012, both of which areincorporated herein by reference in their entireties for all purposes.

In some cases, audible cues may be provided to guide users throughcontrol interactions. These audible cues may indicate one or more ofwhat is being changed, the direction of change, and the amount ofchange. These audio cues may be unique and directly connected to eachindividual interaction on the device or app or they may be common acrossmultiple interaction experiences and indirectly connected to specifictouch points. These audio cues may change in volume and pitch in arecognizable cadence that is directly or indirectly associated to theinteractions. For example, when the user adjusts the temperature setpoint in a way that increases its value, the pitch and volume of eachindicated degree of change may get higher, which gives the listener thesensation that the change is going up, even in the absence of visualcues. The audible cues may present changes as a continuous audible cueor as discrete increments, for example, for temperature increments ofone degree, the tone may persist with a minimum time and pause durationwhile changing and may play a sustained tone at the final change whichis indicative of the total number of degrees of change. The use of audiomay be of particular importance to those who are visually impaired.Through these audible cues, the visually impaired are able to adjusttheir comfort settings with relative ease. In some embodiments, theaudible cue may be distinctive with respect to tone pitch, pattern, orrepetition to signal activation of the Away, Weather, or System Modebuttons and to give an audible acknowledgement of activation of thosefunctions.

In certain embodiments, the user may download custom audio and/or visualcues to play on their device based on specific device interactions orbased on time or event triggers from other cloud-based data. As anexample, a user may download audio and/or visual cues that turn on onceor multiple times if a) there is a severe weather alert for their zipcode or cellular telephone cell, b) their favorite sports team scores apoint, c) a holiday/special event arrives. The audio or visual cues maychange in volume and pitch in ways that are recognizable to the user.Example of such cues may include on Christmas, the thermostat may playJingle Bells on the hour; on New Year's Eve, the thermostat may playAuld Lang Syne at midnight; or when a sports team scores, the thermostatmay play the team's song. Additional examples might announce a birthdayor a Facebook post. The user may also create or select their own customaudio cues, for example ring tones, and download them to the device toaccompany specific interactions. In some embodiments, the audio cues maybe accompanied by visual cues such as change in color projected by wallor mud ring illumination, changes in color of illumination of buttons orbutton-like regions of the window, display of a custom graphic,illumination intensity fluctuations, or combinations of thereof.Audio/visual cues are useful for confirming entry of user inputs to thesystem, changes of system state, and/or navigation steps which skipportions of the usual programming and/or user interaction sequences.These confirmations may be particularly useful in acknowledging inputswhich do not result in an immediate change in the display graphics suchas a one-touch action (see below) which will not take effect for sometime or an event such as entry of inputs when operating in low batteryconditions when a simple acknowledgement tone is preferable to anextended display animation or prolonged audio cue.

FIG. 104 provides a schematic block diagram of an HVAC controller 6200that may be configured to provide audio and/or visual cues in responseto various stimuli, and to permit a user to customize these cues. TheHVAC controller 6200 may be considered as being representative of theHVAC controller 18 (FIG. 1). The HVAC controller 6200 includes a userinterface 6202 that is configured to accept inputs from a user and todisplay information to the user. In some cases, the user interface 6202includes a touchscreen. In some cases, the user interface includes alight ring. In some cases, the user interface 6202 includes a speakersuch as the speaker 6214. In some cases, the user interface 6202includes a vibrator.

A controller 6204 is configured to process inputs from the userinterface and to provide the user interface 6202 with information to bedisplayed. The HVAC controller 6200 includes an equipment connection6206 that is connectable to one or more HVAC components 6208 and that isoperably coupled to the controller 6204. A network connection 6210 isoperably coupled to the controller 6204 and provides the controller 6204with access to outside information. The controller 6204 is configured tooutput, via the user interface 6202, a particular cue in response toinformation received from the equipment connection 6206 and/or thenetwork connection 6210, and wherein the particular cue is a cue thatwas previously selected and activated by the user. In some cases, theuser interface 6202 is configured to permit a user to select a cue thatthe controller 6204 can subsequently output in response to informationreceived from the equipment connection 6206 and/or the networkconnection 6210.

In some embodiments, the HVAC controller 6200 includes a soundgeneration circuit 6212 and a speaker 6214 that is connected to thesound generation circuit 6212. A memory 6216 may be used to store aplurality of pre-programmed sounds. The controller 6204 may includecircuitry for selecting one or more of the plurality of pre-programmedsounds and activating the sound generation circuit 6212 to play, via thespeaker 6214, the selected pre-programmed sounds in response to one ormore of a user action, a programmed event, and an occurrence of a signalreceived by the HVAC controller 6200.

In some cases, the particular cue is selected and downloaded to the HVACcontroller 6200 via the network connection 6210. In some embodiments,the network connection 6210 includes a wireless connection while theequipment connection 6206 includes a wired connection. In someinstances, the cue may include an audio cue and/or a visual cue. In someembodiments, the cue informs a user that particular information has beenreceived from the equipment connection 6206 and/or the networkconnection 6210.

In some embodiments, the pre-programmed sounds are indicative of adirection of change of a variable that is associated with the operationof the HVAC controller 6200. For example, the pre-programmed sounds mayincrease with at least one of pitch and volume when the variable isincreased in value, and the pre-programmed sounds may decrease with atleast one of pitch and volume when the variable is decreased in value.In some cases, the value is increased and decreased by interacting withthe user interface 6202. In some embodiments, the user interface 6202includes a rotatable ring (such as turning ring 180 h, FIG. 5), andwherein rotating the rotatable ring 180 h in a first direction increasesthe value and rotating the rotatable ring 180 h in a second directiondecreases the value.

Those skilled in the art will recognize that the present disclosure maybe manifested in a variety of forms other than the specific embodimentsdescribed and contemplated herein. Accordingly, departure in form anddetail may be made without departing from the scope and spirit of thepresent disclosure as described in the appended claims.

What is claimed is:
 1. A mobile device for programming an HVACcontroller having a wireless interface, the HVAC controller configuredto operate HVAC equipment installed at a particular site, the mobiledevice comprising: a touch screen display configured to displayinformation and to permit a user to enter information; a wireless port;a controller in operative communication with the touch screen displayand the wireless port, the controller of the mobile device configured toestablish communication to a remote download server via the wirelessport and to download an application program code from the remotedownload server to the mobile device; a memory for storing theapplication program code once downloaded; the controller of the mobiledevice further configured to establish a direct wireless connection,without an intervening wireless gateway, between the wireless port ofthe mobile device and the wireless interface of the HVAC controller; thecontroller of the mobile device configured to execute the applicationprogram code, which provides a predetermined sequence of two or moreconfiguration screens on the touch screen display of the mobile devicethat facilitate the user in at least partially configuring the HVACcontroller by setting two or more configuration parameters via the touchscreen display of the mobile device, the predetermined sequence of twoor more configuration screens including a configuration screen thatsolicits a configuration parameter pertaining to a heating system type,a configuration screen that solicits a configuration parameterpertaining to a number of heating stages, and a configuration screenthat solicits a configuration parameter pertaining to a number ofcooling stages for the HVAC equipment installed at the particular site;the controller of the mobile device further configured to upload the twoor more configuration parameters to the HVAC controller via the directwireless connection between the wireless port of the mobile device andthe wireless interface of the HVAC controller; and wherein after thecontroller of the mobile device uploads the two or more configurationparameters to the HVAC controller via the direct wireless connectionbetween the wireless port of the mobile device and the wirelessinterface of the HVAC controller, the mobile device is configured todrop the direct wireless connection between the wireless port of themobile device and the wireless interface of the HVAC controller andestablish communication with a remote monitoring server, and wherein theHVAC controller is configured to also establish communication with theremote monitoring server.
 2. The mobile device of claim 1, wherein themobile device comprises one of a smart phone and a tablet.
 3. The mobiledevice of claim 1, wherein the remote download server is the same serveras the remote monitoring server.
 4. The mobile device of claim 1,wherein the application program code is also configured to display oneor more install screens, wherein the one or more install screens includeinformation on removing an old thermostat as part of a process ofinstalling the HVAC controller.
 5. The mobile device of claim 1, whereinthe application program code is configured to also display one or moreinstall screens, wherein the one or more install screens includeinformation on wiring the HVAC controller as part of a process ofinstalling the HVAC controller.
 6. The mobile device of claim 1, whereinthe predetermined sequence of two or more configuration screens furtherincludes a configuration screen that solicits a configuration parameterpertaining to one of a fuel type, a reversing valve control type, a fancontrol type, and a backup heat type.
 7. The mobile device of claim 1,wherein the predetermined sequence of two or more configuration screensinclude a configuration screen that solicits a configuration parameterpertaining to a comfort preference of the user.
 8. The mobile device ofclaim 1, wherein the predetermined sequence of two or more configurationscreens includes a configuration screen instructing the user enterconfiguration information to configure a wireless connection between theHVAC controller and a home wireless network.
 9. The mobile device ofclaim 1, wherein communication between the HVAC controller and themobile device over the direct wireless connection, the communicationbetween the HVAC controller and the remote monitoring server, and thecommunication between the mobile device and the remote monitoring serverall use a same communication protocol.
 10. An HVAC controller configuredto operate HVAC equipment installed at a particular site, the HVACcontroller comprising: a user interface configured to displayinformation to be viewed by a user and to accept inputs from the user; acontroller operably coupled to the user interface; an on board wirelessinterface operably coupled to the controller, the controller configuredto establish the on board wireless interface to create a directcommunication path, without an intervening wireless gateway, with awireless mobile device for initially configuring the HVAC controller,including: for initially configuring the HVAC controller forcommunication with a wireless gateway by receiving network configurationinformation from the wireless mobile device; for specifying two or moreHVAC equipment configuration parameters that identify characteristics ofthe HVAC equipment installed at the particular site, the two or moreHVAC equipment parameters including a heating system type, a number ofheating stages and a number of cooling stages; the controller configuredto accept the network configuration information and the two or more HVACequipment configuration parameters from the mobile device via the directcommunication path established between the on board wireless interfaceand the wireless mobile device; wherein after the controller accepts thenetwork configuration information and the two or more HVAC equipmentconfiguration parameters from the mobile device via the directcommunication path established between the on board wireless interfaceand the wireless mobile device, the mobile device is configured to dropthe direct wireless connection between the mobile device and the HVACcontroller, and establish communication with a remote monitoring server,and wherein the HVAC controller is configured to establish communicationwith the wireless gateway using the network configuration informationreceived from the wireless mobile device via the direct communicationpath, and to establish communication with the remote monitoring servervia the wireless gateway; and wherein communication over the directwireless connection between the HVAC controller and the mobile deviceand the communication between the HVAC controller, the wireless gateway,and the remote monitoring server all use a same communication protocol.11. The HVAC controller of claim 10, wherein the mobile device is one ofa smart phone and a tablet.
 12. The HVAC controller of claim 10, whereinthe user interface comprises a touch screen.
 13. The HVAC controller ofclaim 10, wherein the controller is configured to display, via the userinterface, a screen instructing a user that the HVAC controller iswirelessly coupled to the mobile device, and to utilize the mobiledevice to configure the HVAC controller.
 14. The HVAC controller ofclaim 13, wherein the controller is further configured to display, viathe user interface, a screen instructing a user to utilize the mobiledevice to initially configure the HVAC controller for communication witha wireless gateway.
 15. The HVAC controller of claim 10, wherein the twoor more HVAC equipment configuration parameters that identifycharacteristics of the HVAC equipment installed at the particular sitefurther include one or more of a fuel type, a reversing valve controltype, a fan control type, and a backup heat type.
 16. The HVACcontroller of claim 10, wherein the HVAC controller further receives oneor more comfort settings from the wireless mobile device via the directcommunication path.
 17. A computer readable medium containing programinstructions for facilitating a user of a wireless mobile device inconfiguring a wireless HVAC controller, wherein execution of the programinstructions by one or more processors of the wireless mobile devicecauses the wireless mobile device to carry out the steps of: providingone or more screens on a display of the wireless mobile device to acceptconfiguration information from the user; accepting configurationparameters from the user of the wireless mobile device including two ormore of a heating system type parameter, a fuel type parameter, areversing valve control type parameter, a number of heating stagesparameter, a number of cooling stages parameter, a fan control typeparameter, and a backup heat type parameter; establishing a directcommunication path, without an intervening wireless gateway between thewireless mobile device and the HVAC controller; transmitting theaccepted configuration parameters from the wireless mobile device to theHVAC controller via the direct communication path between the wirelessmobile device and the HVAC controller; and terminating the directcommunication path between the wireless mobile device and the HVACcontroller; wherein the accepted configuration parameters includes oneor more network configuration parameters for configuring communicationbetween the wireless HVAC controller and the wireless gateway; andwherein communication over the direct communication path between thewireless HVAC controller and the wireless mobile device and thecommunication between the wireless HVAC controller and the wirelessgateway use a same communication protocol.
 18. The computer readablemedium of claim 17, wherein the accepted configuration parametersincludes one or more network configuration parameters for configuringcommunication between the wireless HVAC controller and the wirelessgateway.